我的变量的Ruby公式问题

时间:2016-02-04 07:22:12

标签: ruby

我的变量声明有什么问题?

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)

4 个答案:

答案 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"

如果您想了解最后一行符号的更多信息,请搜索三元运算符