Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you want to "explicitly cast" to an Integer only when the string strictly represents an int in Ruby you shouldn't be calling to_i. The Ruby behaviour is only a gotcha of you don't know the proper way of doing this in Ruby.

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.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: