|
|
|
|
|
by bobbyi
844 days ago
|
|
It is if the object can't be meaningfully cast to the type. I'd expect to get an exception. That's why they exist. For example, consider explicitly casting the string "abc" to an int. Python throws a ValueError. Ruby silently ignores the problem and gives 0. I consider the Ruby behavior to be a gotcha. |
|
If you want an Integer or an exception you would call Integer(). If you want an Integer or nil, you would call Integer.try_convert(). If you call to_i, you're explicitly asking for a best-effort conversion, and shouldn't be surprised that's what you get.