刚开始在 Ruby 中学习循环和流控制,并坚持了这个练习。我一直在测试和寻找答案,但没有找到任何答案,所以我在这里发帖。
如果我有这样的代码设置:
ask_play = ''
loop do
print "Play?: "
ask_play = gets.chomp
break if (ask_play == 'n') || (ask_play == 'N')
end
Run Code Online (Sandbox Code Playgroud)
然后我在输入 n 或 N 后退出循环。
但是,如果我的代码设置如下:
ask_play = ''
play_stop = (ask_play == 'n') || (ask_play == 'N')
loop do
print "Play?: "
ask_play = gets.chomp
break if play_stop
end
Run Code Online (Sandbox Code Playgroud)
该条件似乎不起作用。即使在输入 n 或 N 之后,我仍然继续循环,我只是不明白为什么。
在我正在学习的免费 Ruby 课程中,我了解了通过构造函数为哈希创建默认值的方法。它看起来像这样:
no_nil_hash = Hash.new("default value for nil key")
puts no_nil_hash["non_existing_key"]
Run Code Online (Sandbox Code Playgroud)
哪个打印:default value for nil key
我将如何通过哈希文字表示法来解决这个问题?
没有通过谷歌找到任何答案,这是迄今为止我徒劳的尝试:
via_hash_literal = {"default value for nil key"}但这会导致错误:syntax error, unexpected '}', expecting =>via_hash_literal = {=> "default value for nil key"}导致更多错误:
syntax error, unexpected =>, expecting '}' via_hash_literal = { => "default value for nil key"} syntax error, unexpected '}', expecting end-of-input ...=> "default value for nil key"}via_hash_literal = {nil => "default value for nil key"}不会引发错误,但 …