从零开始学习Ruby,为什么user_input等同于gets.chomp?



我是从零开始学习Ruby的,从前期的准备就有了一定的HTML和CSS知识。对于培训,我使用代码学院。我有问题,不能总是找到一个我能理解的答案,我需要帮助理解以下内容:

user_input = gets.chomp
user_input.downcase!

解释为什么user_input等同于gets。Chomp和这意味着什么,提前感谢!

在Ruby中,=用于为变量赋值,如:

x = 1
y = x

其中y假定x在该行执行时的值。不要与"等值"混淆。如x=y数学意义上,你正在建立某种永久的关系。

在Ruby方法中,返回一个值,即使该值是"nothing"或nil。对于gets,它返回String。你可以调用chomp,或者其他任何你需要的东西来实现你的目标,比如链接downcase

本身的gets.chomp将读取一行输入,去掉后面的换行字符,然后将结果扔进垃圾桶。将this赋值给变量将保留输出。

要理解它,先把它分解一下

  • 接受用户输入
  • 清理用户输入(使用chomp https://apidock.com/ruby/String/chomp)
  • Downcase它
user_input = gets # will return the value entered by the user
user_input = user_input.chomp # will remove the trailing n

# A more idiomatic way to achieve the above steps in a single line
user_input = gets.chomp
# Finally downcase
user_input.downcase!

# By that same principle the entire code can be written in a single line
user_input = gets.chomp.downcase

user_input等价于gets.chomp

记住,Ruby中的一切都是对象。So gets返回String对象,chompdowncase也返回。因此,使用此逻辑,您实际上是在String类上调用实例方法

String.new("hello") == "hello" # true
# "hello".chomp is same as String.new("hello").chomp

相关内容

  • 没有找到相关文章

最新更新