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\n", sum)

    // sub := 可見性.sub(200,100)   // 報錯 說明 小寫是私有的 只能在包內使用 不能在保外使用
    // fmt.Printf("cacl sub return %d\n", sub)

    fmt.Printf(" cacl A is %d \n", 可見性.A)
    // fmt.Printf(" cacl a is %d \n", 可見性.a)  // 報錯

    // 若是想獲得小a  可用下面這種方法
    a := 可見性.Test()
    fmt.Printf(" cacl a is %d \n", a)
}

可見性

可見性,包內任何變量或函數都是能訪問的。包外的話,首字母大寫是可導出的,可以被其餘包訪問或者調用,小寫表示是私有的,不能被外部包訪問或調用

測試

func add(a int, b int) int {
 
}
//add這個函數只能在包內部調⽤,是私有的,不能被外部的包調⽤

 

舉例

代碼 結構spa

可見性/cacl.gocode

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.goblog

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\n", sum)

    // sub := 可見性.sub(200,100)   // 報錯 說明 小寫是私有的 只能在包內使用 不能在保外使用
    // fmt.Printf("cacl sub return %d\n", sub)

    fmt.Printf(" cacl A is %d \n", 可見性.A)
    // fmt.Printf(" cacl a is %d \n", 可見性.a)  // 報錯

    // 若是想獲得小a  可用下面這種方法
    a := 可見性.Test()
    fmt.Printf(" cacl a is %d \n", a)
}
相關文章
相關標籤/搜索