2016-09-15 22 views
0

,所以我試圖輸出與空間的同一行兩個字符串變量,但我收到以下錯誤:在紅寶石之間添加兩個變量,它們成爲一個字符串用空格

in `+': no implicit conversion of Fixnum into String (TypeError)

爲下面的代碼

puts s1 + " " + s2 

我怎樣才能解決這個代碼用一個空格和字符串變量S2的在同一行的值打印字符串變量s1的價值?例如

s1 = "hello" s2="world" output "Hello world" 
+0

Ruby是不是JavaScript的。 '+'是一種方法,而不是操作符。 –

+1

@CodeGnome,有人可能會說這是兩個。我一直妄想在Ruby文檔中定義一個「運算符」。你(或其他任何人,親愛的讀者)是否知道一個? –

+1

@CarySwoveland:我可能會說「+」是一個作爲方法實現的運算符,但它仍然是一個運算符。 「Ruby的存在具有基本的運算符集合(+, - ,*,/等等)以及一些驚喜。有關運算符的完整列表以及它們的優先級,請參見第219頁的表18.4 「。在原始的Ruby書籍和[表18.4:Ruby運算符](http://phrogz.net/programmingruby/language.html#table_18.4)支持那種。 –

回答

4

您可以用下面的做:

puts "#{s1} #{s2}" 

和:

puts [s1, s2].join(" ") 

下面是實現上面的代碼片段下面的例子:

s1, s2 = "hello", "world" 
puts "#{s1} #{s2}" 
=> "hello world" 

puts [s1, s2].join(" ") 
=> "hello world" 
1

試試:

puts s1.to_s + " " + s2.to_s

它看起來像你的變量中的至少一個包含數值(INT)

相關問題