Исходники и презентации
This commit is contained in:
86
lessons/slices_and_arrays/array_operations/main.go
Normal file
86
lessons/slices_and_arrays/array_operations/main.go
Normal file
@ -0,0 +1,86 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func accessToElement1() {
|
||||
data := [3]int{1, 2, 3}
|
||||
|
||||
idx := 4
|
||||
fmt.Println(data[idx]) // panic
|
||||
|
||||
fmt.Println(data[4]) // compilation error
|
||||
}
|
||||
|
||||
func accessToElement2() {
|
||||
data := [3]int{1, 2, 3}
|
||||
|
||||
idx := -1
|
||||
fmt.Println(data[idx]) // panic
|
||||
|
||||
fmt.Println(data[-1]) // compilation error
|
||||
}
|
||||
|
||||
func arrayLen() {
|
||||
data := [10]int{}
|
||||
fmt.Println(len(data)) // 10
|
||||
}
|
||||
|
||||
func capArray() {
|
||||
var data [10]int
|
||||
fmt.Println(cap(data)) // 10
|
||||
}
|
||||
|
||||
func arraysComparison() {
|
||||
first := [...]int{1, 2, 3}
|
||||
second := [...]int{1, 2, 3}
|
||||
|
||||
// except arrays whose element types are incomparable types
|
||||
fmt.Println(first == second)
|
||||
fmt.Println(first != second)
|
||||
|
||||
// [<, <=, >, >=] -> compilation error
|
||||
}
|
||||
|
||||
func emptyArray() {
|
||||
var data [10]byte
|
||||
fmt.Println(unsafe.Sizeof(data)) // 10
|
||||
|
||||
//data == nil // compilation error
|
||||
}
|
||||
|
||||
func zeroArray() {
|
||||
var data [0]int
|
||||
fmt.Println(unsafe.Sizeof(data)) // 0
|
||||
}
|
||||
|
||||
func arrayOfEmptyStructs() {
|
||||
var data [10]struct{}
|
||||
fmt.Println(unsafe.Sizeof(data)) // 0
|
||||
}
|
||||
|
||||
func negativeArray() {
|
||||
var data [-1]int // compilation error
|
||||
_ = data
|
||||
}
|
||||
|
||||
func arrayCreation() {
|
||||
length1 := 100
|
||||
var data1 [length1]int // compilation error
|
||||
_ = length1
|
||||
_ = data1
|
||||
|
||||
const length2 = 100
|
||||
var data2 [length2]int
|
||||
_ = data2
|
||||
}
|
||||
|
||||
func makeArray() {
|
||||
_ = make([10]int, 10) // compilation error
|
||||
}
|
||||
|
||||
func appendToArray() {
|
||||
_ = append([10]int{}, 10) // compilation error
|
||||
}
|
||||
Reference in New Issue
Block a user