せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】?記法、応用編  視力検査

さっき、クエスチョンマークが連続した問題を解いたけど
Goroさんが応用問題を作ったんだって。

 

これは、さっきの?記法が分かったら簡単だねー。

 

ポイント

最初の「Q. 」は、質問って意味で、構文には含まれない!
これ嵌った。
もー。

回答

?記法と条件演算子の組み合わせ。
 
構文全体

??.a??????:?? 

を分けて考えると、

 
 
まず 頭の部分、

??.a???

"?".a?("?")

なわけで、こう書くと分かりやすい。
 

class String
  def a?(str)
    p str
  end
end
??.a???

 
■実行結果

"?"

 
 
そうすると構文は、

"?"???:?? 

となって、これはもう条件演算子
Rubyはnil以外はtrueになる。
 
 
こうやって書き直すと分かりやすい。

p "?"? "hoge":"aa"
p !"?"? "hoge":"aa"

 
■実行結果

"hoge"
"aa"


 
なるほどねー。
視力検査みたいだね。