为什么我不能打印常量字符串的长度? 这是我的代码:
#!/usr/bin/ruby
Name = "Edgar Wallace"
name = "123456"
puts "Hello, my name is " + Name
puts "My name has " + Name.to_s.length + " characters."
我已经阅读了“How do I determine the length of a Fixnum in Ruby?”,但遗憾的是它并没有帮助我。
尝试后,抛出此错误:
./hello.rb:7:in `+': can't convert Fixnum into String (TypeError)
from ./hello.rb:7:in `<main>'
答案 0 :(得分:12)
您无法连接到具有Fixnum的字符串:
>> "A" + 1
TypeError: can't convert Fixnum into String
from (irb):1:in `+'
from (irb):1
from /usr/bin/irb:12:in `<main>'
>> "A" + 1.to_s
=> "A1"
并且,您不需要Name.to_s
,因为Name已经是String对象。只需Name
即可。
将Fixnum(length
)转换为String:
puts "My name has " + Name.length.to_s + " characters."
或者,作为替代方案:
puts "My name has #{Name.length} characters."
答案 1 :(得分:2)
在Ruby中使用插值"#{}"
。它将评估您的表达式并打印您的字符串:
#!/usr/bin/ruby
Name = "Edgar Wallace"
name = "123456"
puts "My name has #{Name.length} characters."
注意:如果使用带单引号(')的字符串,则无法使用插值。使用双引号。