Go語言變量

變量來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變量能夠經過變量名訪問。函數

Go語言是靜態類型語言,不能在運行期間改變變量類型。使用關鍵字 var 定義變量,自動初始化爲零值。若是提供初始化值,可省略變量類型,由編譯器自動推斷。spa

Go語言中變量能夠在三個地方聲明:code

函數外定義的變量稱爲全局變量
函數內定義的變量稱爲局部變量
函數定義中的變量稱爲形式參數

接下來讓咱們具體瞭解全局變量、局部變量和形式參數。blog

全局變量

在函數體外聲明的變量稱之爲全局變量,全局變量能夠在整個包甚至外部包(被導出後)使用。作用域

局部變量

在函數體內聲明的變量稱之爲局部變量,它們的做用域只在函數體內,參數和返回值變量也是局部變量。編譯器

形式參數

形式參數會做爲函數的局部變量來使用。數學

變量聲明

第一種,指定變量類型,聲明後若不賦值,使用默認值。string

var name string

第二種,根據值自行斷定變量類型。編譯

var age = 18

第三種,變量聲明並賦值class

var class string = "Linux"

第四種,一次性聲明多個變量

var Mon, Tues, Wed, Thur, Fri, Sat, Sun int

var (
    Monday    int
    Tuesday   int
    Wednesday int
    Thursday  int
    Friday    int
    Saturday  int
    Sunday    int
)

第五種,短聲明變量

在函數內部,能夠使用更簡略的 ":=" 方式定義變量。":=" 簡潔賦值語句在明確類型的地方,能夠用於替代 var 定義。

package main

func main() {
    name := "oldboy"
    age, class := 18, "Linux"
    _, _, _ = name, age, class
}

注意:":=" 結構不能在函數外使用。

第六種,形式參數

package main

func main() {
}

func sum(a, b int) (c int) {
    c = a + b
    return
}

變量優先級

Go語言程序中全局變量與局部變量名稱能夠相同,可是函數內的局部變量會被優先考慮。實例以下:

ackage main

import "fmt"

// 聲明全局變量
var variable string = "全局變量"

func main() {
    // 聲明局部變量
    var variable string = "局部變量"
    fmt.Printf("結果:%s\n", variable)
}

運行結果:

結果:局部變量

多變量賦值時,先計算全部相關值,而後再從左到右依次賦值。

package main

import "fmt"

func main() {
    data, i := [4]string{"course", "Python", "Linux", "Golang"}, 0
    i, data[i] = 2, "oldboy"
    fmt.Printf("i:%v,data:%v\n", i, data)
}

輸出結果:

i:2,data:[oldboy Python Linux Golang]
相關文章
相關標籤/搜索