ruby - Why can't I modify values of an array in a method? -


in code fragment below, array deck should equal [6,9,5,6,5,1,2] since ruby passes arrays reference. after method call, values of deck not change. why that?

def count_cut!(deck)   s1, s2 = deck[0, deck.last], deck[deck.last..-2]   deck = s2 + s1 + [deck.last] end  deck = [5, 1, 6, 9, 5, 6, 2] count_cut!(deck) p deck 

i using ruby 1.9.2-p180.

assigning deck not mutate array passed in. treated local variable in scope of function definition. can call deck.replace if want mutate it.


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -