Ruby puts command in modules returning nil -
i working though learntocodethehardway.com http://ruby.learncodethehardway.org/book/ex25.html on ex25. in example there module has bunch of methods return or print values. print_last_word method when supplied array of strings puts nil. in example output. question why?
to precise, doesn't puts nil - puts last word , returns nil. here's example output:
>> ex25.print_last_word(words) wait.    # <- output => nil   # <- return value   puts returns nil.
update
there seems bug in print_first_word:
module ex25   def ex25.print_first_word(words)     word = words.pop(0)     puts word   end end  ex25.print_first_word(["foo", "bar", "baz"]) #=> nil   this because ["foo", "bar", "baz"].pop(0) returns empty array , puts [] returns nil without printing anything.
a working implementation (in exercise's style) this:
module ex25   def ex25.print_first_word(words)     word = words.shift     puts word   end end      
Comments
Post a Comment