// 变量var a, b, c =8,2.3,"hello"var d float64;
e :=6var A []int;var B [10]int;
C :=[10]int{1,2,3,4}for i :=0; i <len(B); i ++{}for_, value :=range C {}
D =make([]int,3)// len = 4, cap = 10, 扩容方式 cap*=2
E :=make([]int,4,10)
E =append(E,1)
E1 := E[0:2]// 浅拷贝,公用底层
E2 :=make([]int,3)copy(E2, E)// 深拷贝
E1[0]=100// E会改变,E2不会改变
// 导包方式import(new_name "package_name1""package_name2"."package_name3")// typedeftype myint int
functestInterface(x interface{}){value, f := x.(string)if f {fmt.Printf("value is %s", value)fmt.Printf("type is string")}else{fmt.Printf("type is not string")}}
// [type, value]type User struct{Id intName string}func(this User)Call(){fmt.Printf("user is called\n")fmt.Printf("%v\n", this)}funcreflectVar(x interface{}){xValue := reflect.ValueOf(x)xType := reflect.TypeOf(x)fmt.Println(xType, xValue)for i :=0; i < xType.NumField(); i++{field := xType.Field(i)value := xValue.Field(i).Interface()fmt.Printf("%s: %v = %v\n", field.Name, field.Type, value)}for i :=0; i < xType.NumMethod(); i++{m := xType.Method(i)fmt.Printf("%s: %v\n", m.Name, m.Type)}}funcmain(){user := User{11,"mike"}reflectVar(user)}
1、容器提供的类型 2、Array
Array大小固定,只允许替换元素的值,不能增加或者移除元素改变大小。Array是一种有序集合,支持随机访问。
std::array<int, 4> x; //elements of x have undefined value
std::array<int, 5> x {…