Ruby字符串连接问题
这很有效
irb(main):001:0> name = "Rohit " "Sharma" => "Rohit Sharma"
但事实并非如此
irb(main):001:0> fname = "Rohit " => "Rohit " irb(main):002:0> lname = "Sharma" => "Sharma" irb(main):003:0> name = fname lname
它给出了这个错误
NoMethodError: undefined method `fname' for main:Object from (irb):3
请提供一些建议。 提前致谢。
UPDATE
得到答案后,我写了一篇博文 。 请检查一下。
该错误与fname
必须是一个函数才能工作有关。 相反,试试吧
name = fname + lname
甚至
name = "#{fname}#{lname}"
但你在哪里
name = "Rohit " "Sharma"
这是一个特例,因为Ruby会自动加入这两个字符串。
当你这样做
name = "Rohit " "Sharma"
您不创建两个String
对象,然后将它们合并在一起以创建一个字符串。 相反,Ruby(解释器/编译器/其他)查看代码,并在生成单个String
对象之前将它合并在一起。
所以你可以做到
name = "Rohit " "Sharma"
但不是
first_name_plus_space = "Rohit " last_name = "Sharma" name = first_name_plus_space last_name
只需在它们之间放一个+
name = fname + lname
string + string
定义为返回包含连接在一起的两个输入的新字符串。