[Ruby] ruby でエラーにならないよう array や value の nil をどうにかする
memo.
Contents
調査
配列内の nil を置換する
.map
を使って、欲しい配列を手に入れる。
三項演算子を使って置換している。
puts 'array =========='
array = ['google', nil, 'yahoo']
p array # ["google", nil, "yahoo"]
p array.map {|e| e ? e : ''} # ["google", "", "yahoo"]
値 nil を置換する
.to_s
とか .to_i
すればよいのか。
nil.to_i # 0
おまけ: array.sort
調査中に見つけた。
ソース
puts 'array =========='
array = ['google', nil, 'yahoo']
p array # ["google", nil, "yahoo"]
p array.map {|e| e ? e : ''} # ["google", "", "yahoo"]
puts 'hash values ===='
hash = {apple: 150, banana: 280, lemon: nil}
p array = hash.values # [150, 280, nil]
p array.map {|e| e ? e : ''} # [150, 280, ""]
puts 'value =========='
p hash[:lemon] # nil
p hash[:lemon].to_s # ""
p hash[:lemon].to_i # 0
# rubyでsortする対象にnilが含まれてるとエラー - (゚∀゚)o彡 sasata299's blog
# http://blog.livedoor.jp/sasata299/archives/51176071.html
array = [1, 4, 5, nil, 2]
array.sort!{|a, b|
a.to_i <=> b.to_i
}
p array # [nil, 1, 2, 4, 5]
array = [1, 4, 5, nil, 2]
array.sort!{|a, b|
(a || 6) <=> (b || 6)
}
p array # [1, 2, 4, 5, nil]