• go 函数的作用域及可见性


    1.全局变量,在程序整个生命周期有效

    比如:


    test.go 中 我们定义 了 a 作为全局变量,那么在这个程序中任何地方都可以调用a, 这个

    var a int = 100

    2. 局部变量,分为两种:1)函数内定义,2)语句块内定义。

    func add(a int, b int) int {
      var sum int = 0 
      //sum是局部变量 函数内定义
      if a > 0 {
        var c int = 100
        //c是布局变量,尽在if语句块有效 语句块里面定义   } }

    举例

    package main
    
    import (
        "fmt"
        "zhangyue/res/listen6/可见性"
    )
    
    func main() {
        sum := 可见性.Add(100, 200)
        fmt.Printf("cacl Add return %d
    ", sum)
    
        // sub := 可见性.sub(200,100)   // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
        // fmt.Printf("cacl sub return %d
    ", sub)
    
        fmt.Printf(" cacl A is %d 
    ", 可见性.A)
        // fmt.Printf(" cacl a is %d 
    ", 可见性.a)  // 报错
    
        // 如果想得到小a  可用下面这种方法
        a := 可见性.Test()
        fmt.Printf(" cacl a is %d 
    ", a)
    }

    可见性

    可见性,包内任何变量或函数都是能访问的。包外的话,首字母大写是可导出的,能够被其他包访问或者调用,小写表示是私有的,不能被外部包访问或调用

    func add(a int, b int) int {
     
    }
    //add这个函数只能在包内部调⽤,是私有的,不能被外部的包调⽤

    举例

    代码 结构

    可见性/cacl.go

    package 可见性
    // 大写能被外部的包引用  小写 说明是私有的 只能在本包里面被调用 (本包里面的所有.go都可调用)
    
    var a=100
    var A = 200
    
    func Add(a, b int) int {
        return a+b
    }
    
    func sub(a, b int) int {
        return a - b
    }

    可见性/test.go

    package 可见性
    
    func Test() int {
        return a
    }

    可见性测试/test.go

    package main
    
    import (
        "fmt"
        "zhangyue/res/listen6/可见性"
    )
    
    func main() {
        sum := 可见性.Add(100, 200)
        fmt.Printf("cacl Add return %d
    ", sum)
    
        // sub := 可见性.sub(200,100)   // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
        // fmt.Printf("cacl sub return %d
    ", sub)
    
        fmt.Printf(" cacl A is %d 
    ", 可见性.A)
        // fmt.Printf(" cacl a is %d 
    ", 可见性.a)  // 报错
    
        // 如果想得到小a  可用下面这种方法
        a := 可见性.Test()
        fmt.Printf(" cacl a is %d 
    ", a)
    }
  • 相关阅读:
    Pycharm2017应用小技巧
    浅谈哈希表
    攻克网页文字不可复制的难题
    Java中List的相关知识
    电脑实用小技巧
    Jme3涉及的eclipse知识
    Word2010撤销按钮失效,Ctrl+Z失效解决办法
    Word文档中怎么删除空白页?删除空白页的六种方法
    word中分栏后文字均匀的分布在了左右两栏,而不是填满左栏再填右栏,怎么办?
    visdom服务启动时提示Downloading scripts, this may take a little while解决办法
  • 原文地址:https://www.cnblogs.com/ctztake/p/10279476.html
Copyright © 2020-2023  润新知