美文网首页
go作用域

go作用域

作者: seven_son | 来源:发表于2017-08-15 19:41 被阅读30次

词法作用域

var x = 42

func main() {
    fmt.Println(x)
    foo()
}

func foo() {
    fmt.Println(x)
}
  • 函数作用域
    类似闭包,因为x是全局变量
var x = 0 
func increment() int {
    x++
    return x
}

func main() {
    fmt.Println(increment())
    fmt.Println(increment())
}

闭包:

func wrapper() func() int {
    x := 0
    return func() int {
        x++
        return x
    }
}

他们之间有相似之处,因为在上面的代码中,x本来就是全局变量,所以x一直存在,一直可以调用,但是下面的代码中
x要想一直存在变量中,所以x必须被别人引用,且将引用x的函数返回到全局变量中,这样就形成了闭包

  • 包的作用域
    同一包中两个文件,之间调用,确定要在一起编译时可以调用的

  • 代码块的作用域
    {}代表变量的作用域

    func main() {
    x := 1
    {
        y := 2
    }
    fmt.Println(x)
    fmt.Println(y)
}

相关文章

  • go作用域

    词法作用域 函数作用域类似闭包,因为x是全局变量 闭包: 他们之间有相似之处,因为在上面的代码中,x本来就是全局变...

  • 《Web前端开发之JavaScript精英课堂》(六)

    对 作用域、作用域链、执行上下文对象(GO | AO)、闭包 的个人理解: JS分为全局和局部作用域,都属于词法作...

  • go 变量作用域

    说明1、函数内部声明/定义的变量叫局部变量,作用域仅限于函数内部 2、函数外部声明/定义的变量叫全局变量,作用域在...

  • Go 语言变量作用域

    作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明: ...

  • go语言作用域小记

    下边代码为什么回报错,怎么改? 运行报以下错误: 14行,也就是fmt.Println(*a)报错了,因为13行输...

  • Go 语言变量作用域

    作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明:...

  • go 1.0 变量作用域

    变量定义位置的不同,分为以下三个类型,分别起作用的范围是:函数内定义的变量称为局部变量 比如 x := 5 ...

  • js作用域

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 作用域,作用域链

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

网友评论

      本文标题:go作用域

      本文链接:https://www.haomeiwen.com/subject/hpgjlxtx.html