【问题标题】:`+': no implicit conversion of Integer into String (TypeError)`+': 没有将 Integer 隐式转换为 String (TypeError)
【发布时间】:2020-08-20 05:21:10
【问题描述】:

收到此错误:

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

这是调用它的行:

print "\tsize "+(package["size"] == nil ? "" : package["size"])+"\n";

【问题讨论】:

  • package["size"] 是一个整数。将其更改为package["size"].to_s 或使用字符串插值。

标签: ruby


【解决方案1】:

package["size"] 不是 nil 时,它的返回值是整数,并且你试图将它连接成一个字符串,并且它不会对值进行隐式类型转换

这里有一些方法可以让它工作

解决方案 1。

"\tsize " + package['size'].to_s + "\n";

解决方案 2。

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

【讨论】:

  • @Kumar - 为什么不直接使用"\tsize " + (package['size']).to_s + "\n"
  • 方案2中,不用.to_s,它是隐式的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
相关资源
最近更新 更多