我正在使用《学习编程》一书,该书教新手如何从 Ruby 开始编程。那家伙说尝试创建一个程序,询问我的个人姓名(第一个中间名和最后一个姓氏),然后使用length
相加并得到我的名字中有多少个字符的总和。我到目前为止没有搞砸:
puts 'enter your first name'
first = gets.chomp
puts 'first name is ' + first + '.'
puts 'enter your middle name.'
middle = gets.chomp
puts 'middle name is ' + middle + '.'
puts 'enter your last name.'
last = gets.chomp
puts 'last name is ' + last + '.'
puts 'Full name is ' + first + ' ' + middle + ' ' + last + '.'
所以我尝试了一些事情,例如
puts 'there are ' + first.length + middle.length + last.length.to_s + 'characters in your name!'
似乎没有什么作用。
最佳答案
尝试使用双引号字符串,让 ruby 使用 #{} 符号为您计算代码
puts "there are #{first.length + middle.length + last.length} characters in your name!"
针对评论的更新
其实很简单。在 Ruby 中,无论您在其中放入什么内容,单引号字符串都被视为文本,而双引号字符串则由 Ruby 解释器解析。因此,如果您使用带有 #{} 符号的双引号字符串,那么大括号内的所有内容都将被视为 ruby 代码。
要使您原来的方式起作用,请尝试将这些值添加在一起并将它们分配给另一个变量,然后输出该变量
例如
total_length = first.length + middle.length + last.length
puts 'there are ' + total_length.to_s + ' characters in your name!"
你的方法的问题是你将三个值加在一起,但第3个值有一个 to_s ,所以 ruby 会混淆最后一个数字是字符串还是数字,而前两个值是添加不是字符串,因此不应包含在 put 语句中。
希望这是有道理的
关于ruby - 将多个 .length 调用添加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11147406/