package main
import (
"fmt"
"reflect"
)
func mathStduy() {
var a int = 5
var b int = 6
c := a + b
fmt.Printf("c: %v\n", c)
d := b - a
fmt.Printf("d: %v\n", d)
e := c * a
fmt.Printf("e: %v\n", e)
f := b % a
fmt.Printf("f: %v\n", f)
fmt.Printf("reflect.TypeOf(a): %v\n", reflect.TypeOf(a))
}
func arrayStudy() {
var a [2]int = [2]int{2}
fmt.Printf("a: %v\n", a)
var b = [3]int{5, 6, 3}
fmt.Printf("b: %v\n", b)
var c = [...]int{4, 5, 4, 3, 3}
fmt.Printf("c: %v\n", c)
var d = [7]string{3: "hello world", 6: "tom"} //使用索引,指定元素的位置
fmt.Printf("d: %v\n", d)
var f = [...]struct {
name string
age int
}{
{"李华", 1},
}
fmt.Printf("f: %v\n", f)
var e = [3][3]int{{1, 3, 3}, {5, 6, 4}} //多维数组
fmt.Printf("d: %v\n", e)
fmt.Printf("len(e): %v\n", len(e))
fmt.Printf("cap(d): %v\n", cap(d))
//数组遍历
for i := 0; i < len(c); i++ {
fmt.Printf("c[i]: %v\n", c[i])
}
for k, v := range b {
fmt.Printf("v: %v,%v\n", k, v)
}
//二维数组
for k, v := range e {
for k1, v1 := range v {
fmt.Printf("%d,%d,%d\n", k, k1, v1)
}
}
}
func sliceStudy() {
var a []int
fmt.Printf("a: %v\n", a)
var b []int = make([]int, 10)
fmt.Printf("b: %v\n", b)
var c []int = make([]int, 0, 0)
fmt.Printf("c: %v\n", c)
var d []int = []int{1, 8, 5, 6, 5}
fmt.Printf("d: %v\n", d)
f := [5]int{3, 4, 5, 6, 7}
e := f[2:3]
fmt.Printf("f: %v\n", e)
}
func init() {
fmt.Printf("this is init \n")
}
func main() {
fmt.Printf("this is func main\n")
// mathStduy()
// arrayStudy()
sliceStudy()
}