diff options
| -rw-r--r-- | go.html.markdown | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/go.html.markdown b/go.html.markdown index f7bd8ee3..390e36dc 100644 --- a/go.html.markdown +++ b/go.html.markdown @@ -101,6 +101,20 @@ can include line breaks.` // Same string type.  	var d2 [][]float64      // Declaration only, nothing allocated here.  	bs := []byte("a slice") // Type conversion syntax. +	// Because they are dynamic, slices can be appended to on-demand. +	// To append elements to a slice, built-in append() function is used. +	// First argument is a slice to which we are appending. Commonly, +	// the array variable is updated in place, as in example below. +	s := []int{1, 2, 3}		// Result is a slice of length 3. +	s = append(s, 4, 5, 6)	// Added 3 elements. Slice now has length of 6. +    fmt.Println(s) // Updated slice is now [1 2 3 4 5 6] +    // To append another slice, instead of list of atomic elements we can +	// pass a reference to a slice or a slice literal like this, with a +	// trailing elipsis, meaning take an array and unpack its elements, +	// appending them to the slice. +	s = append(s, []int{7, 8, 9}...) // Second argument is an array literal. +    fmt.Println(s)	// Updated slice is now [1 2 3 4 5 6 7 8 9] +  	p, q := learnMemory() // Declares p, q to be type pointer to int.  	fmt.Println(*p, *q)   // * follows a pointer.  This prints two ints. | 
