匿名变量及变量的作用域

匿名变量

上面说过,变量必须要被使用才可以。那么匿名变量可以解决这一个问题。

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