Go 语言 中定义未使用的 变量 是不被允许的,编译时,程序会报错,但有时候函数可能返回多个值,但有些值我们是不需要使用的,这时候只能使用 Go 语言匿名变量来处理。
Go 语言匿名变量的特点是一个下画线 _
。
它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个这个标识符作为变量对其它变量的进行赋值或运算。
使用 Go 语言匿名变量时,只需要在变量声明的地方使用下画线替换即可。
_, 变量1 := 表达式
变量1, _ := 表达式
上面的两个语句,我们分别都使用了下划线来代表了匿名变量。
Go 语言中,一个函数可以同时返回多个值
package main
import "fmt"
func GetHttpResp()(data []byte, errCode int32){
return []byte("HttpData"), 0
}
func main() {
data, errCode := GetHttpResp()
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("HttpResp =", string(data), "ErrCode =", errCode)
}
程序运行后,控制台输出如下:
首先,我们定义了一个函数,该函数返回两个值。接着我们在 main
函数中调用该函数,并使用两个变量,接受了该函数的两个返回值,程序正确输出了我们定义的函数中返回的值。
Go 语言中,定义的变量必须使用,否则程序会报错
package main
import "fmt"
func GetHttpResp()(data []byte, errCode int32){
return []byte("HttpData"), 0
}
func main() {
data, errCode := GetHttpResp()
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("HttpResp =", string(data))
}
程序运行后,控制台输出如下:
首先,我们定义了一个函数,该函数返回两个值。接着我们在 main
函数中调用该函数,并使用两个变量,接受了该函数的两个返回值,但我们只使用了其中的一个变量,变量 errCode
并未使用。
因为 golang 不支持定义的变量不使用,所以程序报错。
Go 语言中,不想使用的变量,可以使用 _
来代替
package main
import "fmt"
func GetHttpResp()(data []byte, errCode int32){
return []byte("HttpData"), 0
}
func main() {
data, _ := GetHttpResp()
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("HttpResp =", string(data))
}
程序运行后,控制台输出如下:
首先,我们定义了一个函数,该函数返回两个值。接着我们在 main
函数中调用该函数,因为我们定义的函数返回两个值,但我们只想使用其中的一个值。
对于我们不想使用的值,使用了匿名变量来忽略该值。
Go 语言中定义未使用的变量是不被允许的,编译时,程序会报错,但有时候函数可能返回多个值,但有些值我们是不需要使用的,这时候只能使用 Go 语言匿名变量来处理。
Go 语言匿名变量 的语法为 _
。