Rubyっぽいコードを書く
#hogeがnilじゃなかったらfugaに代入する #rubyはじめて30分位の人が書きそうなコード if hoge != nil fuga = hoge end #nil?くらいは使いたい if !hoge.nil? fuga = hoge end #!(否定)を使わない unless hoge.nil? fuga = hoge end #nilはfalseである if hoge fuga = hoge end #1行で書けるときは1行で fuga = hoge if hoge
#hogeがnilじゃなかったらfugaに代入する、nilの場合はdefalutを代入する fuga = [] if hoge fuga = hoge else fuga = default_array#default的な何か end #ifはブロックを作らない if hoge fuga = hoge else fuga = default_array end fuga.each{...} #これはぬるぽにならない #評価式をうまく fuga = hoge || default_array
-
-
-
-
- -
-
-
-
まったく関係ないけど、injectってresultをちゃんと返してやらないと駄目なんだね><
resultはなぜか知らないけどもっと広いスコープなのかと思ってました。
つまりこんなコードを書いて頭をうならせていたぼくはunkってことです
a = [1,2,3,4,5] a.inject(0){|result, i| result += i if i>3 } #nilが+できないうぇうぇと言われる a.inject(0) do |result, i| result += i if i>3 result #resultを毎回返してやればok end