false と nil だけが偽だそうで
Ruby レファレンスに
とありましたが、これはなまじ他のプログラミング言語を知っていると陥りやすい落とし穴ですね。0 や 0.0 や 1 や -1 や ''(空文字列) も true と同じ扱いですものね。
特に 0 や ''(空文字列) が気をつけていないとハマリそうです。
例でみれば一目瞭然
【広告】
Ruby では false または nil だけが偽で、それ以外は 0 や空文字列も含め全て真です
とありましたが、これはなまじ他のプログラミング言語を知っていると陥りやすい落とし穴ですね。0 や 0.0 や 1 や -1 や ''(空文字列) も true と同じ扱いですものね。
特に 0 や ''(空文字列) が気をつけていないとハマリそうです。
例でみれば一目瞭然
puts '真' if true # => '真'
puts '真' if 0 # => '真'
puts '真' if '' # => '真'
puts '真' if 0.0 # => '真'
puts '真' if 1 # => '真'
puts '真' if -1 # => '真'
puts '真' if false # =>
puts '真' if nil # =>
【広告】
COMMENT
へぇ参考になります by 自分
確かにいろんな言語を知っていくと、前に覚えた言語の印象が変わるときがありますね。リアル言語でもそうですね、例えば英語→フランス語、みたいな流れですと、うわーフランス語って男の名詞と女の名詞があるのかー、その分英語の名詞は男と女の区別がなくて楽だなー、とか。
Ruby を知る前は、nil といったらとにかく Lisp みたいな印象を強く持っていましたので、私も Ruby はモロ Lisp の要素を取り入れているのかなあ、と思っていました。
Ruby をやっていて、lambda というキーワードが出てきたときもあれどこかで昔聞いたことがあるような、と思っていたら Lisp で使ったことがあるキーワードだったのを思い出しましたし。
ところで、Ruby がここまで広まった大きな要因の 1 つとして Ruby On Rails のことを Matz さんは挙げられていましたけど、Lisp でも Lisp On Rails みたいなことは全然可能でありましょう、ともおっしゃっていました。
長い間あまり表舞台に立っていないように思えます Lisp ですが (Emacsぐらい?)、しかし消えることもなく残っているところを考えると、とてつもないポテンシャルを持っている言語で、マーケティングや時代の流れ次第では大化けするかもしれませんね。
Ruby を知る前は、nil といったらとにかく Lisp みたいな印象を強く持っていましたので、私も Ruby はモロ Lisp の要素を取り入れているのかなあ、と思っていました。
Ruby をやっていて、lambda というキーワードが出てきたときもあれどこかで昔聞いたことがあるような、と思っていたら Lisp で使ったことがあるキーワードだったのを思い出しましたし。
ところで、Ruby がここまで広まった大きな要因の 1 つとして Ruby On Rails のことを Matz さんは挙げられていましたけど、Lisp でも Lisp On Rails みたいなことは全然可能でありましょう、ともおっしゃっていました。
長い間あまり表舞台に立っていないように思えます Lisp ですが (Emacsぐらい?)、しかし消えることもなく残っているところを考えると、とてつもないポテンシャルを持っている言語で、マーケティングや時代の流れ次第では大化けするかもしれませんね。
Ruby のことを "Matz Lisp" と呼ぶ人がいるくらいだから、Ruby はかなり Lisp の影響を受けて入ると思いますよ。
私は C → Ruby → Scheme の順に学習したんですが、C しか知らなかった頃と Scheme を知ってからでは Ruby の印象がガラリと変わりました。