Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I see people use the following code:

gets.chomp.to_i

or

gets.chomp.to_f

I don't understand why, when the result of those lines are always the same as when there is no chomp after gets.

Is gets.chomp.to_i really necessary, or is gets.to_i just enough?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
693 views
Welcome To Ask or Share your Answers For Others

1 Answer

From the documentation for String#to_i:

Returns the result of interpreting leading characters in str as an integer base base (between 2 and 36). Extraneous characters past the end of a valid number are ignored. If there is not a valid number at the start of str, 0 is returned

String#to_f behaves the same way, excluding, of course, the base numbers.

Extraneous characters past the end of a valid number are ignored, this would include the newline. So there is no need to use chomp.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...