mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
In golang slices are dynamic, so a mention of append() for slice updates seems to be appropriate.
This commit is contained in:
parent
791edecd78
commit
a7a8c85257
@ -101,6 +101,20 @@ can include line breaks.` // Same string type.
|
|||||||
var d2 [][]float64 // Declaration only, nothing allocated here.
|
var d2 [][]float64 // Declaration only, nothing allocated here.
|
||||||
bs := []byte("a slice") // Type conversion syntax.
|
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.
|
p, q := learnMemory() // Declares p, q to be type pointer to int.
|
||||||
fmt.Println(*p, *q) // * follows a pointer. This prints two ints.
|
fmt.Println(*p, *q) // * follows a pointer. This prints two ints.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user