Ruby新手。这段代码出了什么问题?
city_details['longitude'] + "," + city_details['latitude']
我收到此错误:
./player_location.rb:6:in `+': String can't be coerced into Float (TypeError)
答案 0 :(得分:12)
看起来city_details['longitude']
和city_details['latitude']
的值为Float
。
您不能像这样在Ruby中将Float
添加到String
。您可以将所有内容转换为String
,然后+
,或使用字符串插值。
city_details['longitude'].to_s + "," + city_details['latitude'].to_s
"#{city_details['longitude']},#{city_details['latitude']}"
大多数Rubyist倾向于使用字符串插值。
答案 1 :(得分:6)
它抱怨您尝试将float
与string
连接起来。
更好的方法是进行字符串插值:
"#{city_details['longitude']}, #{city_details['latitude']}"
其他可能的解决方案:
您可以通过调用to_s
方法将每个浮点数转换为字符串:
city_details['longitude'].to_s + "," + city_details['latitude'].to_s
或者您可以使用join
方法:
[city_details['longitude'], city_details['latitude']].join(",")