Ruby新手.这段代码出了什么问题?
city_details['longitude'] + "," + city_details['latitude']
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
./player_location.rb:6:in `+': String can't be coerced into Float (TypeError)
Run Code Online (Sandbox Code Playgroud)
Dog*_*ert 12
它看起来像city_details['longitude']
和city_details['latitude']
的Float
值.
你不能像这样添加Float
到String
Ruby中.您可以将所有内容转换为String
,然后将+
它们转换为或使用字符串插值.
city_details['longitude'].to_s + "," + city_details['latitude'].to_s
"#{city_details['longitude']},#{city_details['latitude']}"
Run Code Online (Sandbox Code Playgroud)
大多数Rubyist倾向于使用String插值.
它抱怨你正在尝试连接a float
和a string
.
更好的方法是执行字符串插值:
"#{city_details['longitude']}, #{city_details['latitude']}"
Run Code Online (Sandbox Code Playgroud)
其他可能的方案:
你可以通过调用这样的to_s
方法将每个float转换为字符串:
city_details['longitude'].to_s + "," + city_details['latitude'].to_s
或者你可以使用这个join
方法:
[city_details['longitude'], city_details['latitude']].join(",")
归档时间: |
|
查看次数: |
9343 次 |
最近记录: |