【Ruby】リテラルって何?
シンボルって数字みたいという理解をしていたら師匠からメールが来た。
シンボルって分かりにくいけど 使う側からすると、定数に感じるかどうかかなぁと思ってる 具体的には 文字列との大きな違いは、ロジックによって組み立てれるかどうかやと思う。 Stringやと s = "a" s += "b" puts s #-> ab こんなことできるけど、シンボルやとできない シンボルはロジックで組み立てるのではなく、 明示的にソースに記述されることになる これが定数っぽく感じて、コードが見やすくなる 気がしている。 うまくいえてないね まぁ、 s.intern でもシンボルがとれるから 印象の話でしかないが。 定数っていうか、リテラルって感じやね。
おおー。師匠でもうまく説明できないんだ。
それはひとえに携帯メールだから、って事はないよね。。
うーん。なるほど。
定数は分かるけど、リテラルって改めて聞かれると、
なんだか良く分からない。
定数っていうか、リテラルって感じ
そっかー。。「感じ」かー。
そうだよね。
そういう女子高生や孤独のグルメぽい言い回しになるよね。
ベビースターの味って男の子だよな
リテラルって何
公式ガイドを見てみよう。
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html
引数にヒアドキュメントを渡す。
ヒアドキュメントでは、開始ラベル `<<識別子' が文法要素としての式 にあたります。これは、開始ラベルを使ってヒアドキュメント全体を引数に渡 したりレシーバにしたりすることができるということを意味します。
http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html
公式の例が良く分からなかった。こういうこと↓
def method (a1, a2, a3) p a2 p a3 end method("hh",<<LABEL, "jjj") doggg LABEL
■実行結果
" doggg\n" "jjj"
ふーん。
引数にハッシュを渡す
メソッドの引数の末尾に要素が1つ以上のハッシュを渡す場合は、{, }を省略することができます。
def method (a1, a2, a3) p a3 end method(1,2,3=>4, 5=>6)
■実行結果
{3=>4, 5=>6}
へー。引数は3つと認識されるんだー。