append
的时候管用nil
type M struct
, 匿名结构体使用var M struct { }
来声明infinite recursive call
无限递归调用map
不需要使用数组类型的申明,见下面代码段1 ,结构题数组的声明使用 下面代码段 2## map代码 1
func main() {
m := map[string]int{
"小刘": 12,
"小王": 15,
}
for k, v := range m {
fmt.Println(k, v)
}
}
## 结构体代码 2
stus := []student{
{name: "pprof.cn", age: 18},
{name: "测试", age: 23},
{name: "博客", age: 28},
}
Go 语言里的 … 是有两种用法,一个是在字符串前边,一个是在字符串后边。
func test1(args ...string) { //可以接受任意个string参数
for _, v:= range args{
fmt.Println(v)
}
}
func main(){
var strss= []string{
"qwr",
"234",
"yui",
"cvbc",
}
test1(strss...) //切片被打散传入
}
结构体的声明是要使用键值对
func newAGraph(n int) *AGraph {
adjList := make([]VNode, n)
return &AGraph{
n: n, // 结构体是使用键值对的方式来声明的
e: 0, //边数为0
adjList: adjList, // 链表
}
}
匿名结构体的声明,是在方法内部声明,直接把 type 更改成 var
func main() {
var user struct{Name string; Age int}
user.Name = "pprof.cn"
user.Age = 18
fmt.Printf("%#v\n", user)
}
当结构体内的东西需要修改的时候,或者结构体内的东西比较大的时候,使用指针类型的结构体
结构体使用 new
声明。