我的变量声明有什么问题?
puts("lets see how well you know ruby")
name = gets
name = name.chomp
if name == Alex
print("good job")
else
print("leave")
end
错误:
(st.txt:5:in `<main>': uninitialized constant Alex (NameError)
答案 0 :(得分:2)
您需要在引号中包含Alex。如果您不将其包含在引号中,则认为它是名为constant
的{{1}}
变化:
Alex
要:
if name == Alex
您的代码应该可以正常工作。
作为旁注,以大写字母开头的变量是常量,通常不会改变。
答案 1 :(得分:1)
应该是'Alex'
,而不是Alex
。因为Alex
将是一个常量(指向类,模块或其他任何东西),而不是字符串。
你来到这里
name = name.chomp
将始终返回一个字符串(空或非空,具体取决于您是否输入了任何内容)。
在Ruby中,异常通常会对正在发生的事情有很好的解释,因此阅读这些内容非常有用。
答案 2 :(得分:1)
试试这个:)
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Stack Trace
in /home/transhopper/vendor/kriswallsmith/buzz/lib/Buzz/Client/Curl.php at line 29
答案 3 :(得分:0)
修复并重构您的代码,请尝试:
puts "lets see how well you know ruby"
name = gets.chomp
puts name == "Alex" ? "good job" : "leave"
如果您想了解最后一行符号的更多信息,请搜索三元运算符。