syntax - use of ! in Ruby -
i new ruby! , trying learn use of "!" .
i aware ! included user's string modified in-place; otherwise, ruby create copy of user_input , modify instead.
but in following case both programs getting same output.why?
print "please enter input" user_input = gets.chomp user_input.downcase! print "please enter input" user_input = gets.chomp user_input.downcase
in ruby, bangs (!) used inform programmer method calling destructive
. it's ruby's way of saying "hey! method going change object called on!". number of safe methods in string
, array,
enumerable`, etc classes have destructive counterparts.
example:
my_str = "hello, world!" my_str.downcase # => "hello, world!" my_str # => "hello, world!" my_str = "goodbye, world!" my_str.downcase! # => "goodbye, world!" my_str #> "goodbye, world!"
as can see, while both methods return string's lower case variant, downcase!
changes my_str
permanently.
it's convenient aspect of ruby wish more languages offered.
i think it's worth mentioning that, because destructive methods work in-place, faster , more memory efficient safe counterparts have return new objects. therefore, my_string.downcase!
should preferred my_string = my_string.downcase
whenever possible.
Comments
Post a Comment