Go语言25个关键字全解析
go语言中的特殊关键字
Go语言中共有25个关键字,这些关键字具有特定的语法功能,不可用作标识符。以下是详细分类及用法:
声明类关键字
var
用于声明变量,可指定类型或通过初始值推断类型:
var x int = 10
var y = "hello"
const
声明常量,值不可修改:
const Pi = 3.14
type
定义新类型或类型别名:
type Celsius float64
type IntSlice []int
func
声明函数或方法:
func add(a, b int) int {return a + b
}
流程控制类关键字
if/else
条件分支控制:
if x > 0 {println("positive")
} else {println("non-positive")
}
switch/case/default
多条件分支:
switch os := runtime.GOOS; os {
case "linux":println("Linux")
default:println(os)
}
for
循环控制(支持三种形式):
for i := 0; i < 10; i++ { /* 传统for循环 */ }
for x < 100 { /* while循环 */ }
for { /* 无限循环 */ }
range
迭代数组、切片、map等:
for idx, val := range []int{1,2,3} {println(idx, val)
}
break
退出当前循环:
for {if condition {break}
}
continue
跳过当前循环迭代:
for i := 0; i < 5; i++ {if i%2 == 0 {continue}println(i) // 只输出奇数
}
goto
跳转到指定标签(慎用):
if err != nil {goto exit}
exit:println("cleanup")
并发编程关键字
go
启动goroutine(轻量级线程):
go func() {println("new goroutine")
}()
chan
声明通道类型:
ch := make(chan int)
select
多通道操作选择:
select {
case msg := <-ch1:println(msg)
case ch2 <- 1:println("sent")
default:println("no activity")
}
错误处理关键字
defer
延迟执行语句(常用于资源释放):
f, _ := os.Open("file.txt")
defer f.Close() // 函数返回前执行
panic/recover
异常处理机制:
func safeCall() {defer func() {if r := recover(); r != nil {println("recovered:", r)}}()panic("unexpected error")
}
包管理关键字
import
导入包:
import ("fmt""math/rand"
)
package
声明包名(文件首行):
package main
结构体相关关键字
struct
定义结构体类型:
type Point struct {X, Y int
}
interface
定义接口类型:
type Writer interface {Write([]byte) (int, error)
}
map
声明映射类型:
m := make(map[string]int)
m["key"] = 1
其他关键字
return
函数返回值:
func sum(a, b int) int {return a + b
}
fallthrough
在switch中强制执行下一个case:
switch x {
case 1:println("1")fallthrough
case 2:println("2") // 即使x=1也会执行
}
注意事项
- 所有关键字均为小写,如
func
而非Func
。 - 未使用的导入变量会导致编译错误,需用空白标识符
_
忽略:
_ = unusedVar
- 关键字不能用于自定义变量名、函数名等标识符。