Rubyで使われる記号の意味(正規表現の複雑な記号は除く)
! ? # % & | + - * / ^ ' . , < > = ~ $ @ _ { } [ ] ( ) " : ` \ ;
!
- !true
-
not 演算子。演算子式/not を参照。
- 3 != 5
-
「等しくない」比較演算子。演算子式/not を参照。
- def xxx!
-
「!」はメソッド名の一部です。慣用的に、 同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。
- /xxx/ !~ yyy
-
正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。
?
- ?a
-
リテラル/数値リテラル 。長さ 1 の文字列。
- def xx?
-
この場合の「?」はメソッド名の一部分です。 慣用的に、真偽値を返すタイプのメソッドを示すために使われます。
- xx ? yy : zz
-
演算子式/条件演算子 。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
- /xxx?/
-
正規表現の、量指定子(quantifiers)。直前の正規表現の 0 または 1 回の繰り返し。
#
- #コメント
-
字句構造/コメント 。# から行末までがコメントになります。
- xxx #=> 実行結果
- xxx # => 実行結果
-
慣用的に実行結果を示すために使われるコメントの書き方。
- #! ruby -Ks
-
shebang。Rubyの起動/インタプリタ行の解釈 を参照。
- # coding: utf-8
-
マジックコメント。多言語化/magic comment を参照。
- "a is #{a}"
-
a = 10 p "a is #{a}" #=> "a is 10"
- Range#each
-
説明文の中でのみ使われます。Ruby言語の要素ではありません。クラスのインスタンスメソッドであることを 簡単に表示するための表記法です。一方、クラスメソッドは「Range.new」のように「.」でつなぎます。
%
- 10 % 3
-
各クラスで定義された「%」演算子。整数クラスでは「剰余」を意味するメソッド。Fixnum#%メソッドなどを参照。
- "%04b" % 10
-
Stringクラスの「%」演算子。String#% メソッド。文字列中ではフォーマット指定子としても使われる。
- %r{/etc/httpd/logs$} や %w[foo bar baz] ・・ %<文字><区切り文字><文字列><区切り文字>
-
リテラル/%記法 。<区切り文字>には任意の非英数字を用いることができ、 <文字>によって式の意味が異なります。なお、最初の <区切り文字> が、左側の角括弧 [、丸括弧 (、 ブレース {、小なり不等号 <、の場合は、対応する右側の括弧が終わりの <区切り文字> になります。
p %r{/etc/httpd/logs$} #=> /\/etc\/httpd\/logs$/ p %w[foo bar baz] #=> ["foo", "bar", "baz"]
- %!STRING!
-
% 記法の一種。リテラル/%記法 。ダブルクォート文字列で %Q!STRING! と同じ。
p %!nomad! #=> "nomad"
- % ruby -e "puts 'Hello'"
-
コマンドラインへの入力を示す。rubyスクリプト上で入力を行うには `command` や system(command) などと書く
&
- xxx & yyy
-
論理積演算子。または類似の演算を行うメソッド。
p( 3 & 5 ) #=> 1 ・・ 二進数で 0011 & 0101 #=> 0001
- a &= yyy
-
「&」メソッドの自己代入演算子。
- xxx && yyy
-
「and」演算子。
p( 3 && 5 ) #=> 5 ・・ 3 も 5 も真なので右の値を返す。
- def xxx(&yyy) ・・ &がついた引数
-
メソッド定義のブロック引数。クラス/メソッドの定義/メソッド定義 を参照。
- xxx(&b)
-
Proc オブジェクトをブロックとして使う。メソッド呼び出し(super・ブロック付き・yield)/ブロック付きメソッド呼び出し を参照。
|
- 3 | 5
-
論理和演算子または類似のメソッド。二進数で 0011 | 0101 => 0111。
- 3 || 5
-
「or」演算子または類似のメソッド。3 は真なので左の値を返す。
- a ||= xxx
-
「||」演算子の自己代入演算子。a が 偽 か 未定義 なら a に xxx を代入する、という意味になります。
a ||= :some p a #=> some a ||= :sec p a #=> some
- 5.times{|n| p n}
-
ブロックパラメータであることを示す区切り文字。
- /xx(xx|xx)/
-
正規表現の選択
+
- 2 + 3
-
たし算。または類似の演算を行うメソッド。
- + 3
-
正の数を表す、単項演算子+。
- /xxx+/
-
正規表現の、量指定子(quantifiers)。直前の表現の 1 回以上の繰り返し
-
- 3 - 2
-
引き算。または類似のメソッド
- 3 * (-5)
-
単項 - (マイナス)。混乱を避けるため適宜()でくくるとよい。
- % ruby -w など コマンドラインの入力 -AAA
-
コマンドラインオプション
*
- 2 * 3
-
かけ算。または類似の演算を行うメソッド。
- 2**3
-
累乗。または類似の演算を行うメソッド。
- def xxx(*yy) ・・ *がついた引数
-
メソッド呼出の引数展開。メソッド呼び出し(super・ブロック付き・yield) と クラス/メソッドの定義/メソッド定義 を参照。
- x, *y = foo()
-
多重代入。演算子式/多重代入 を参照。
- /xx*/
-
正規表現の、直前の表現の 0 回以上の繰り返し。できるだけ長くマッチしようとする。 正規表現 を参照。
/
- 10 / 3
-
割り算、または類似のメソッド。
- /xxx/
- '1二三四5'.split(//)
-
// は空の正規表現を意味する
^
- true ^ true
-
「xor」演算子。排他的論理和。または類似のメソッド。
- a ^= true
-
「^」演算子の自己代入演算子。aの論理値の反転。
p(a=true);p(a^=true);p(a^=true) #=> true false true
- /^xxx/
-
正規表現で、行頭。文字列の先頭や改行文字の直後の位置にマッチします。
:
- :exit等の:のついた識別子
-
シンボルリテラル。リテラル/シンボル を参照。
- Net::HTTP
-
定数のスコープ演算子。変数と定数/定数 を参照。
- ::DateTime
-
定数のスコープ演算子で、トップレベルの定数であることを示す。Object クラスで 定義されている定数(トップレベルの定数と言う)を確実に参照するためには 変数と定数/定数 を参照。
- xx ? yy : zz
-
条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。 演算子式/条件演算子 を参照。
- { a:"aaa", b:"bbb" }
-
ハッシュの新しい記法。以下と同じです。
{ :a => "aaa", :b => "bbb" }
.
- xxx.yyy
-
オブジェクトのメソッド
- Range.new
-
オブジェクトのメソッドだが、説明文の中では特にクラスのクラスメソッド/モジュールの モジュールメソッドを示すことに使われます。一方、インスタンスメソッドは「Range#each」のように 「#」でつなぎます。
- 1 .. 20
-
最大値を含む Range オブジェクトを作る範囲演算子です。全体で範囲式といいます。演算子式/範囲式 。
- 1 ... 20
-
最大値を含まない Range オブジェクトを作る範囲演算子です。 全体で範囲式といいます。演算子式/範囲式 。
- if /^begin/ .. /^end/ など 条件式 式 .. 式
-
条件式中の範囲式は特別にフリップフロップのように働きます。
'1234543212345'.each_byte{|n|print( (n==?2)..(n==?4) ? n.chr : '_' )} #=> _234___21234_ #"2"が出るまではfalse、"2"が出てから"4"が出るまではtrue、"4"から"2"まではfalseを返す。
- /xx.xx/
-
正規表現の任意の一文字。
,
- a,b, = [1,2,3] ・・ 代入の左辺の「,」
-
多重代入。演算子式/多重代入 を参照。
- a = b, c
-
多重代入。演算子式/多重代入 を参照。
- def foo(bar, baz)
-
メソッド引数の区切り。
- { :a => 1, :b => 2 }
-
ハッシュの要素の区切り。
- [:a, :b, :c]
-
配列の要素の区切り。
- { :a => 1, :b => 2 }.each{|key, val|}
-
ブロックパラメータの区切り。
<
- 3 < 5
-
「より小さい」比較演算子
- 3 <= 5
-
「より小さいか等しい」比較演算子
- 3 <=> 5
-
基本的な比較演算子。ほかの比較演算子はこの演算子を元に Comparable モジュールで定義されています。 左が大きければ 1, 等しければ0, 右が大きければ -1 を返すように作ることが期待されています。
- 3 << 1
-
シフト演算を行うメソッド。または類似のメソッド。Array#<< など。
- a <<= 1
-
「<<」演算子の自己代入演算子。
a = 3 a <<= 1 p a #=> 6
- <<EOS または <<-EOS 、<<"EOS" など。
-
ヒアドキュメントです。リテラル/ヒアドキュメント (行指向文字列リテラル) 。ヒアドキュメントは `<<識別子' を含む行の次の行から `識別子' だけの行の直前までを文字列とする行指向のリテラルです。
- class Foo < Super
-
クラス定義でスーパークラスを指定しています。 クラス/メソッドの定義/クラス定義 。
- class << obj
-
特異クラス定義。クラス/メソッドの定義/特異クラス定義 を参照。
>
- 3 > 5
-
「より大きい」比較演算子
- 3 >= 5
-
「より大きいか等しい」比較演算子
- 3 <=> 3
-
基本的な比較演算子。ほかの比較演算子はこの演算子を元に Comparable モジュールで定義されています。左が大きければ1, 等しければ0, 右が大きければ -1 を返すように作ることが期待されています。
- 3 >> 1
-
シフト演算子。または類似のメソッド。
- a >>= 1
-
「>>」演算子の自己代入演算子。
a = 3 a >>= 1 p a #=> 1
- { 1 => "11" , 3 => "333" }
-
ハッシュのリテラル
- ->(a,b){ p [a,b] }
-
Ruby1.9 で導入された lambda の新しい記法。以下と同じ。
lambda{|a, b| p [a, b] }
=
- a = 12
-
代入演算子。
- xxx.a = 12
-
代入メソッドの呼び出し。
- a == 12
-
等号演算子。または類似のメソッド。
- a === 12
-
特殊な等号演算子。Object#===での説明:「このメソッドは case 文での比較に用いられます。 デフォルトは Object#== と同じ働きをしますが、 この挙動はサブクラスで所属性のチェックを実現するため 適宜再定義されます」。たとえば、Range#=== はother が範囲内に含まれている時に真を返します。
- a += 12 , a *= 12 , a ||= 12 など・・a 二項演算子 = b
-
自己代入演算子。演算子式/自己代入 を参照。
a = 7 a **= 2 p a #=> 49
- def xx=
-
この場合の「=」はメソッド名の一部分です。このタイプの名前のメソッドを定義すると、 同時に「=」演算子を定義することになります。
- =begin ・・ =end
-
埋め込みドキュメントです。字句構造/埋め込みドキュメント を参照。
- { 1 => "11" , 3 => "333" }
-
ハッシュのリテラル
- rescue => XXX
-
例外処理で例外結果を変数 XXX に代入します。
- xxx #=> 実行結果
-
慣用的に実行結果を示すために使われるコメントの書き方。
~
- '%04b %04b' % [3, ~ 3]
-
ビット演算の否定。
'%04b %04b' % [3, ~ 3] #=> "0011 1100"
- /xxx/ =~ yyy
-
正規表現のメソッド =~ 。正規表現と文字列をマッチさせる。両辺を入れ替えても機能します。
- /xxx/ !~ yyy
-
正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。
- ~ /xxx/
-
/xxx/ =~ $_ の省略形。~の後ろは正規表現でなければいけません。
$
- $xxx
-
グローバル変数。変数と定数/グローバル変数 を参照。
- $_ や $! など ・・$<1文字の数字、記号>
-
特殊変数(組み込み変数)。変数と定数/組み込み変数 を参照。
- /xx$/
-
正規表現で行末。文字列の末尾や改行文字の直前の位置にマッチします。改行自身は含みません。 正規表現を参照。
@
- @xxx
-
インスタンス変数。変数と定数/インスタンス変数 を参照。
- @@xxx
-
クラス変数。変数と定数/クラス変数 を参照。
- def +@ または def -@
-
単項演算子 +X や -X を定義するときの表記法。
class String def +@ self.upcase end end puts(+"joke") #=> JOKE
_
- xxx_yyy
-
識別子の中では小文字と同じ扱い
- 123_456
-
文字コード以外の数値リテラルには、`_' を含めることができます。 ruby インタプリタは `_' を単に無視し、 特別な解釈は何もしません。 これは、大きな数値の桁数がひと目でわかるように記述するのに便利です。 リテラル/数値リテラル を参照。
{
}
- { 1 => "11" , 3 => "333" }
-
ハッシュのリテラル
- 5.times{|n| p n}
-
ブロック
- /xx{2,3}/
-
正規表現の、範囲指定繰り返し制御(interval quantifier)。
- "a is #{a}"
-
式展開。リテラル/式展開 を参照。
a = 10 p "a is #{a}" #=> "a is 10"
[
]
- [1,"some",:ok]
-
配列のリテラル
- 'abcde'[1,2]
-
[]メソッドの実行
class String def [](*a) '(^^;' end end p( 'abcde'[1,2] ) #=> "(^^;"
- /xx[abc]/
-
正規表現の文字クラス指定。
(
)
- (true and false)
-
丸カッコ()は厳密には、複数の文、式をまとめてひとつの式にするグループ化の()(例の内側のカッコ)とメソッドの引数を明示する()(例の外側のカッコ)があります。例のような特別な場合を除き、普段は使い分けを意識する必要はありません。()は意味が不明瞭にならない範囲で省略が可能です。
"
- "abc"
-
文字列リテラル。式展開などが可能なタイプの文字列リテラルです。 リテラル/文字列リテラル を参照。
'
- 'abc'
-
文字列リテラル。最低限のエスケープだけしかしません。式展開などをしたい場合はかわりに""を用います。
`
- `ls`
-
コマンド出力。バッククォート(`)で囲まれた文字列は、コマンドとして実行され、 その標準出力が文字列として与えられます。リテラル/コマンド出力 を参照。
puts `ruby -h` #=> Usage: ruby [switches] [--] [programfile] [arguments] #=> ....
\
バックスラッシュ。環境によって¥に見えたりします。
- puts "abc\"def"
-
文字列や正規表現の中のエスケープ。
puts "abc\"def" #=> abc"def
- xxx \
-
継続行。改行の直前に置かれる。パースの段階で直後の改行が存在しないものとして扱われます。
puts(3 \ + 4) #=> 7
;
- a = 3 ;
-
式の区切り。改行と同じ
- [1,2,3].each{|v; z| z = v * 2 ... }
-
ブロックローカル変数を宣言するための区切り。