匿名变量及变量的作用域
匿名变量
上面说过,变量必须要被使用才可以。那么匿名变量可以解决这一个问题。
package main
func a() (int, bool) {
return 1, false
}
func main() {
_, ok := a()
if ok {
//todo
} else {
//todo
}
}
假设我们有个函数,返回值有多个(例子中2个)。那么我们不关心他的其中一个值。假设第二个值返回一个布尔值代表成功或失败。。那么对于不需要的参数我们就可以定义个_下划线这种参数接收。。。省的我们还费劲去定义一变量去接收一个我们不需要的参数。
域名的作用域
我们在函数及函数之间变量不共用的,例如在A函数定义的无法在B函数使用。或者在代码块里的,外面是无法获取到的。
package main
import "fmt"
func main() {
a := 1
if a == 1 {
b := 0
}
fmt.Println(b)//这行会报错,因为b是在代码块里声明的。 如果b在if上面声明即可(但不要在里面重新命名,因为内部优先级更高)
}
ps:变量的声明周期仅存在于自己的代码块里。代码块里可以使用代码块外面声明的变量,甚至全局变量,但是代码块外面的无法访问代码块里面声明的变量。 和动态语言的差别
文档更新时间: 2023-03-26 18:00 作者:young