75 lines
1.9 KiB
Go
Raw Permalink Normal View History

2017-08-29 00:14:20 -07:00
/*
Slices: https://www.youtube.com/watch?v=CF9S4QZuV30&t=1139s#
Syntax: 0:3 - a slice capturing the first index up to then 3rd index
*/
package main
import "fmt"
func main() {
/*
A slice is like an array but when you define them
you leave out the size
*/
//define an array without a static size of type 'int' and assign values
numSlice := []int{5, 4, 3, 2, 1}
/*
define a variable containing the pre-created array and
start at the 3rd index going through the 5th
(Indexes start at 0 here as well)
*/
numSlice2 := numSlice[3:5]
fmt.Println("numSlice2[0] =", numSlice2[0])
fmt.Println("numSlice2[1] =", numSlice2[1])
/*
If you do not supply the first number before the colon
the first number will default to index (0)
the result is everyting before index 2
*/
fmt.Println("numSlice[:2] =", numSlice[:2])
/*
The opposite is true if you do not supply the second number
the result is everything after index 2
*/
fmt.Println("numSlice[2:] =", numSlice[2:])
/*
To create a slice without set values, you need to use 'make'
If you want index 0 to start at index 5 and set a max
length of 10:
*/
numSlice3 := make([]int, 5, 10)
/*
numSlice3 at this point is empty since no values were assigned
but we can copy the values of numSlice with 'copy'
*/
copy(numSlice3, numSlice)
/*
Since numSlice3 begins at index 5, index 0 will output the
5th index of 'numSlice' which was copied into numSlice3
*/
fmt.Println("numSlice3[0] =", numSlice3[0])
fmt.Println("numSlice3[1] =", numSlice3[1])
/*
Since we gave numSlice3 a maximum of 10 possible indexes
we can append more values than the original 'numSlice' variable
which was only 5 indexes originally
*/
//append the values '0', and '-1' to the next available indexes ( 5 and 6)
numSlice3 = append(numSlice3, 0, -1)
fmt.Println("numSlice3[5] =", numSlice3[5])
fmt.Println("numSlice3[6] =", numSlice3[6])
}