:exit等の:のついた識別子は何ですか
Fixnum)です.
"exit".internとしても求められます.catch, throw, autoloadなどでは,
引数として文字列もシンボルも使えます.
symbolのスコープでeval((:symbol).id2name)とすると,
値が取り出せます.
a = 'This is the content of "a"'
b = eval(:a.id2name)
a.id == b.id
loopは制御構造ですか
a +bがエラーになりますが
a(+b)と解析されています.+の両側の空白をなくすか,いれるか
のどちらかにしてください.
s = "x"; puts s *10 がエラーになりますが
puts s *10 のところが,s(*10)というメソッド呼出しと解析されて
しまいます.s*10にするか,s * 10にしてください.
p {}で何も表示されません
def pos= (val) print @pos,"\n"; @pos = val endと定義しても,
pos = 1で参照できません
=のついたメソッドは,レシーバー形式で呼ぶ必要があります.
self.pos = 1 という形で呼んでください.
'\1'と'\\1'はどう違いますか
\'と\\だけが
解釈され,それ以外は解釈されません.
p true or true and falseはtrueを表示するのに,
a=true if true or true and falseでは,aにtrue
が代入されません.
(p true) or true and falseと解釈されます.
and/orは
文の構成要素として解釈され,pの引数を結ぶ演算子としては解釈され
ません.
a=true if (true or true and false)と解釈されています.
ifの方がand/orより優先順位が低いこと,
orとandの優先順位が同じなので,
左から順に解釈されることによります.