Исходники и презентации
This commit is contained in:
58
lessons/slices_and_arrays/slice_operations/main.go
Normal file
58
lessons/slices_and_arrays/slice_operations/main.go
Normal file
@ -0,0 +1,58 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func accessToElement1() {
|
||||
data := make([]int, 3)
|
||||
fmt.Println(data[4]) // panic
|
||||
}
|
||||
|
||||
func accessToElement2() {
|
||||
data := make([]int, 3, 6)
|
||||
fmt.Println(data[4]) // panic
|
||||
}
|
||||
|
||||
func accessToElement3() {
|
||||
data := make([]int, 3, 6)
|
||||
_ = data[-1] // compilation error
|
||||
}
|
||||
|
||||
func accessToNilSlice1() {
|
||||
var data []int
|
||||
_ = data[0] // panic
|
||||
}
|
||||
|
||||
func accessToNilSlice2() {
|
||||
var data []int
|
||||
data[0] = 10 // panic
|
||||
}
|
||||
|
||||
func appendToNilSlice() {
|
||||
var data []int
|
||||
data = append(data, 10)
|
||||
}
|
||||
|
||||
func rangeByNilSlice() {
|
||||
var data []int
|
||||
for range data {
|
||||
}
|
||||
}
|
||||
|
||||
func makeZeroSlice() {
|
||||
data := make([]int, 0)
|
||||
fmt.Println(len(data)) // 0
|
||||
fmt.Println(cap(data)) // 0
|
||||
}
|
||||
|
||||
func makeSlice() {
|
||||
_ = make([]int, -5) // compilation error
|
||||
_ = make([]int, 10, 5) // compilation error
|
||||
|
||||
size := -5
|
||||
_ = make([]int, size) // panic
|
||||
|
||||
size = 5
|
||||
_ = make([]int, size*2, size) // panic
|
||||
}
|
||||
Reference in New Issue
Block a user