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定义为返回包含连接在一起的两个输入的新字符串。