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)
}
}
原文:https://www.cnblogs.com/hongpeng0209/p/9200770.html