Hi Jess Apologies for my bad example. Please kindly see my reply to Dave's post. Thanks
On Tuesday, December 19, 2017 at 2:43:50 PM UTC+11, Jesse McNelis wrote: > > On Tue, Dec 19, 2017 at 8:54 AM, Sasan Rose <sasan...@gmail.com > <javascript:>> wrote: > > Please take a look at https://play.golang.org/p/BL4LUGk-lH > > solutionNew = make([]int, 0) > solutionNew = append(solution, 2) > > Is a strange thing to do, you create a new slice using make([]int, 0) > and then never use it. > perhaps you wanted to use copy()? > > > The problem you're encountering is slices can share backing arrays. > Each time you append to the slice called 'solution', you're modifying > the same backing array. > > In your code: > > /*You append 2 to solution creating a slice that points to the same > memory as 'solution'*/ > solutionNew = append(solution, 2) > > /* You append this slice to a slice called slice */ > slice = append(slice, solutionNew) > > /* You append a 4 to the same slice called 'solution' which shares > memory with slice you appended to your slice called 'slice' thus you > override the 2 you append to 'solution' with a 4*/ > solutionNew = append(solution, 4) > > /* You append the slice to 'slice' so now there are two slices in > 'slice' that refer to the same memory and thus have the same value */ > slice = append(slice, solutionNew) > > > - Jesse > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.