标签:编译器 sel func 进入 语句 amp 直接 键值 流程控制
25个保留关键字
不能将内存地址与指针混为一谈
内存地址是内存中每个字节单元的唯一编号,而指针则是一个实体,指针会分配内存空间,相当于一个专门用来保存地址的整型变量
对复合类型(数组,切片,字典,结构体)变量初始化时,有一些语法限制
package main import ( "fmt" ) type data struct { a int b string } func main() { s := data{ 1, "ab", } fmt.Println(s) }
if...else...
左花括号不能另起一行
package main import ( "fmt" ) func main() { var x int = 5 if x > 5 { fmt.Println("a") } else if x < 5 && x > 0 { fmt.Println("b") } else { fmt.Println("c") } }
switch同样支持初始化语句,从上到下,从左到右顺序匹配case执行,只有全部匹配失败时,才会执行default块
package main import ( "fmt" ) func main() { switch x := 5; x { default: //编译器会保证不会先执行default x += 100 fmt.Println(x) case 5: x += 50 fmt.Println(x) } }
无需执行break,case执行完毕后自动中断,如需贯通后继case,需执行fallthrough,但不再匹配后继条件表达式
package main import ( "fmt" ) func main() { switch x := 5; x { default: x += 100 fmt.Println(x) case 5: x += 50 fmt.Println(x) fallthrough //不需要匹配条件了,直接执行下一case;必须放在case块结尾 case 6: x += 100 fmt.Println(x) } }
输出 55 155
for循环
for i :=0;i<3;i++{ } for x < 10{ x++ } for { break }
for...range完成数据迭代,返回索引,键值数据
func main() { data := []string{"a", "b", "c"} for k, v := range data { fmt.Println(k, v) } }
goto,continue,break
package main import ( "fmt" ) func main() { for i := 0; i < 4; i++ { fmt.Println(i) if i > 1 { goto exit } } exit: fmt.Println("exit") }
break:用于switch、for、select语句,终止整个语句块执行
continue:仅用于for循环,结束本次循环,进入下一次循环
func main() { for i := 0; i < 10; i++ { if i%2 == 0 { continue } if i > 5 { break } fmt.Println(i) } }
标签:编译器 sel func 进入 语句 amp 直接 键值 流程控制
原文地址:https://www.cnblogs.com/hongpeng0209/p/9200770.html