p( !true ) #=> false
p(3 != 5) #=> true
- 「!」はメソッド名の一部です。慣用的に、同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。
/xxx/ !~ yyy
- 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。
p( ?a ) #=> 97 ・・ ?<文字>
- この場合の「?」はメソッド名の一部分です。慣用的に、論理値(true/false、nil)を返すタイプのメソッドを示すために使われます。
xx ? yy : zz
- 条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
/xxx?/
- 正規表現の、量指定子(quantifiers)。直前の正規表現の 0 または 1 回の繰り返し。
#コメント
xxx #=> 実行結果
- 慣用的に実行結果を示すために使われるコメントの書き方。
#! ruby -Ks
"a is #{a}"
- 説明文の中でのみ使われる(Ruby言語の要素ではない)。クラスのインスタンスメソッドであることを簡単に表示するための表記法です。(クラスメソッドは「Range.new」のように「.」でつなぐ)
p( 10 % 3 ) #=> 1
p( "%04b" % 10 ) #=> "1010"
%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!
% ruby -e "puts 'Hello'"
- コマンドラインへの入力を示す。rubyスクリプト上で入力を行うには `command` や system(command) などと書く
a &= yyy
xxx && yyy
def xxx(&yyy) ・・ &がついた引数
p( 3 | 5 ) #=> 7
- 論理和演算子または類似のメソッド。二進数で 0011 | 01010 => 0111。
p( 3 || 5 ) #=> 3
- 「or」演算子または類似のメソッド。true || true なので左の値を返す。
a ||= xxx
5.times{|n| p n}
/xx(xx|xx)/
2 + 3
/xxx+/
- 正規表現の、量指定子(quantifiers)。直前の表現の 1 回以上の繰り返し
3 - 2
3 * (-5)
- 負数を表す、単項演算子-。混乱を避けるため適時()でくくるとよい。
% ruby -w など コマンドラインの入力 -AAA
2 * 3
p(2**3) #=> 8
def xxx(*yy) ・・ *がついた引数
/xx*/
- 正規表現の、直前の表現の 0 回以上の繰り返し。できるだけ長くマッチしようとする。
p(10 / 3) #=> 3
/xxx/
p('1二三四5'.split(//)) #=> ["1", "二", "三", "四", "5"]
p( true ^ true ) #=> false
- 「xor」演算子。排他的論理和。または類似のメソッド。
a ^= true
/^xxx/
- 正規表現で、行頭。文字列の先頭や改行文字の直後の位置にマッチします。
:exit等の:のついた識別子
::DateTime
- 定数のスコープ演算子で、トップレベルの定数であることを示す。Objectクラスで 定義されている定数(トップレベルの定数と言う)を確実に参照する ためには左辺無しの`::'演算子が使えます。
xx ? yy : zz
- 条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。
if 30>20 : ... など 条件式 式 :
- オブジェクトのメソッドだが、説明文の中では特にクラスのクラスメソッド/モジュールのモジュールメソッドを示すことに使われます。(インスタンスメソッドは「Range#each」のように「#」でつなぐ)
1 .. 20
1 ... 20
if /^begin/ .. /^end/ など 条件式 式 .. 式
/xx.xx/
a,b, = [1,2,3] ・・ 代入の左辺の「,」
p(3 < 5) #=> true
p(3 <= 5) #=> true
p(3 <=> 5) #=> -1
- 基本的な比較演算子。ほかの比較演算子はこの演算子を元にComparableモジュールで定義されています。左が大きければ1、等しければ0、右が大きければ-1を返すように作ることが期待されています。
p(3 << 1) #=> 6 ・・ 二進数で 0011 → 0110
a <<= 1
「<<」演算子の自己代入演算子。
a = 3
a <<= 1
p a #=> 6
<<EOS または <<-EOS 、<<"EOS" など。
- ヒアドキュメント。ヒアドキュメントは `<<識別子' を含む行の次の行から `識別子' だけの行の直前までを文字列とする行指向のリテラルです。
class Foo < Super
p(3 > 5) #=> false
p(3 >= 5) #=> false
p(3 <=> 3) #=> 0
- 基本的な比較演算子。ほかの比較演算子はこの演算子を元にComparableモジュールで定義されています。左が大きければ1、等しければ0、右が大きければ-1を返すように作ることが期待されています。
p(3 >> 1) #=> 1 ・・ 二進数で 0011 → 0001
a >>= 1
「>>」演算子の自己代入演算子。
a = 3
a >>= 1
p a #=> 1
{ 1 => "11" , 3 => "333" }
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
- この場合の「=」はメソッド名の一部分です。このタイプの名前のメソッドを定義すると、同時に「=」演算子を定義することになります。
=begin ・・ =end
{ 1 => "11" , 3 => "333" }
xxx #=> 実行結果
- 慣用的に実行結果を示すために使われるコメントの書き方。
p('%04b %04b' % [3, ~ 3]) #=> "0011 1100"
/xxx/ =~ yyy
- 正規表現のメソッド =~ 。正規表現と文字列をマッチさせる。両辺を入れ替えても機能します。
/xxx/ !~ yyy
- 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。
~ /xxx/
- /xxx/ =~ $_ の省略形。~の後ろは正規表現でなければいけません。
$xxx
$_ や $! など ・・$<1文字の数字、記号>
/xx$/
- 正規表現で行末。文字列の末尾や改行文字の直前の位置にマッチします。改行自身は含みません。
@xxx
@@xxx
def +@ または def -@
- 文字コード以外の数値リテラルには、`_' を含めることができます。 ruby インタプリタは `_' を単に無視し、特別な解釈は何もしません。 これは、大きな数値の桁数がひと目でわかるように記述するのに便利です。
{ 1 => "11" , 3 => "333" }
5.times{|n| p n}
/xx{2,3}/
- 正規表現の、範囲指定繰り返し制御(interval quantifier)。
"a is #{a}"
[1,"some",:ok]
'abcde'[1,2]
/xx[abc]/
Range.new(first,last[, exclude_end])
- 説明文の中で、省略可能であることを示す表記法(Ruby言語の要素ではない)。
p((true and false)) #=> false
- 丸カッコ()は厳密には、複数の文、式をまとめてひとつの式にするグループ化の()(例の内側のカッコ)とメソッドの引数を明示する()(例の外側のカッコ)があります。例のような特別な場合を除き、普段は使い分けを意識する必要はありません。()は意味が不明瞭にならない範囲で省略が可能です。
"abc"
'abc'
- 文字列リテラル。最低限のエスケープだけしかしません。式展開などをしたい場合はかわりに""を用います。
`ls`
バックスラッシュ。環境によって¥に見えたりします。
puts "abc\"def" #=> abc"def
a = 3 ;