Codecademy の演習に取り組んでいますが、何の .nil? がわかりません。私がそれを実装する必要がある方法で意味します。これが私のコードです:
movies = { GIS: 10.0, Phantasm: 1.5, Bourne: 4.0}
puts "Whats your movie brah?"
title = gets.chomp
puts "What's your rating brah?"
rating = gets.chomp
movies[title] = rating
puts "Your info was totally saved brah!"
case movies
when 'add'
puts "What movie do you want to add?"
title = gets.chomp
if movies[title.to_sym].nil?
puts "What's the rating? (Type a number 0 to 4.)"
rating = gets.chomp
movies[title.to_sym] = rating.to_i
puts "#{title} has been added with a rating of #{rating}."
else
puts "That movie already exists! Its rating is #{movies[title.to_sym]}."
end
when "update"
puts "Updated!"
when "display"
puts "Movies!"
when "delete"
puts "Deleted!"
else puts "Error!"
end
「add」コマンドから始まる各コマンドのメソッドを作成しています。しかし、私を完全に混乱させているのは、
.nil?
私が理解していることから、 nil = false
そこで、私が考えているのは、
.nil?
添付の陳述が虚偽であるかどうかを尋ねています。行に基づく私の混乱の核心:
if movies[title.to_sym].nil?
その行は尋ねていますか:
「入力したばかりのタイトルがすでに映画の配列でシンボルとして表されている場合、このステートメントは偽でしょうか?」
その場合、if ステートメントは、タイトルが存在しない場合は true に評価され、タイトルが既に存在する場合は false に評価されると思います。映画が本当に新しい場合は、最後に、
else
声明。誰かが私の誤解を明確にするのを手伝ってくれたら、とても感謝しています!