Ruby `+';:未将整数隐式转换为字符串(TypeError)

Ruby `+';:未将整数隐式转换为字符串(TypeError),ruby,Ruby,获取此错误: (`+': no implicit conversion of Integer into String (TypeError)) 这句话叫它: print "\tsize "+(package["size"] == nil ? "" : package["size"])+"\n"; 当package[“size”]不是nil时,它返回一个整数,您试图将它连接成一个字符串,而它不进

获取此错误:

(`+': no implicit conversion of Integer into String (TypeError))
这句话叫它:

print "\tsize "+(package["size"] == nil ? "" : package["size"])+"\n";
package[“size”]
不是nil时,它返回一个整数,您试图将它连接成一个字符串,而它不进行隐式类型转换

这里有一些方法可以让它发挥作用

解决方案1

"\tsize " + package['size'].to_s + "\n";
解决方案2

"\tsize #{package['size'].to_s}\n";

package[“size”]
是一个整数。将其更改为
package[“size”]。\u
或使用字符串插值。@Kumar-为什么不使用
“\tsize”+(package['size'])。直接更改为\u s+“\n”
?在解决方案2中,无需使用
。更改为
,这是隐式的。