著作一覧 |
def hello(t) if t == 'am' msg = 'good morning' elsif t == 'pm' msg = 'good afternoon' end puts msg end hello('AM')
なんとなくmsgの代入が行われないからNameErrorになるのかと思ってたらnilが入ってるなぁ。
追記:KKさんのツッコミでリファレンスに書いてあることを知る(一応、読んだはずでも覚えてないことはいっぱいいっぱい)。エラーにならないって意味じゃ人にやさしい、初期化漏れに気づきにくいって(ちょっとon error resume next風味にプログラムが書ける)意味じゃ人に厳しい。どっちが好み? おれにはちょっとわからない。どっちでもいいや。
ジェズイットを見習え |
代入そのものは実行されなくても<br>> msg = 'good morning'<br>の行でmsgを宣言したことになるのではないのでしょうか?
http://www.ruby-lang.org/ja/man/?cmd=view;name=%CA%D1%BF%F4%A4%C8%C4%EA%BF%F4<br><br>>宣言は、例え実行されなくても宣言とみなされます。<br><br>ですね。
おお、なるほど。どうもありがとうございます。
試していただいてありがとうございます. <br>ところでcomponentsがダメ、ってところが気になるんですが、もうちょっと詳しく説明していただけないでしょうか?<br>ひょっとしてRuby-GetTextのバグかもしれませんし.
あ、ごめんなさい。文字通り、全然関係ないです(いや、正確には開発者にはちょっと関連はしてるけど、関連の仕方が違うというか)。componentsの下のプログラムは修正してもその修正が反映されない、という意味です。<br>で、Ruby-GetTextと同じように、このへんも反映されるといいなぁ、とメモしたということです。<br>紛らわしい書き方をして済みません。Ruby-GetTextはすばらしいです。<br>もし、利用するのに障壁があるとしたら、僕の個人的な感覚では、poとかmoとか正直言って言葉としても落ち着きが悪い、わけのわからない名前が出てくるところとだと思います。あれは敬遠したくなりそうです。でも、それはむとうさんが書かれたRails専用のチュートリアルで解消されていると思います。
わけわからないと書いているのは字面と2文字英単語の雰囲気で、それがportable objectとmachine objectを意味することは知ってます。
そういうことでしたか。了解しました。> componentsの話。<br><br>po/moの言葉は確かにわかり$鼎蕕い任垢諭2燭㎠Δ泙っ屬⑳垢┐♢任④襪箸垢鵑覆衢鬚任④椴匹い㎠發靴譴泙擦鵑諭#portableがテキストファイルのことっていう命名自体、ピンと来ないですし。<br><br>チュートリアルでももう少し分かりやすく書けないか検討してみます(優先度は落としますが)。