Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 短變量聲明運算符(:=)

Golang中的短變量聲明運算符(:=)用于創(chuàng)建具有適當名稱和初始值的變量。 使用此操作符的主要目的是在函數(shù)內(nèi)聲明和初始化局部變量,并縮小變量的作用域。變量的類型由表達式的類型決定。var關(guān)鍵字還用于創(chuàng)建特定類型的變量。所以你可以說在Golang中有兩種創(chuàng)建變量的方法,如下所示:

  • 使用var關(guān)鍵字

  • 使用短變量聲明運算符(:=)

在本文中,我們將僅討論短變量聲明運算符。要了解var關(guān)鍵字,可以在Go中引用var關(guān)鍵字。

使用短變量聲明運算符的語法:

variable_name := 表達式 或 值

在這里,必須在聲明后立即初始化變量,無需提及變量的類型, 右側(cè)的表達式或值用于評估變量的類型。而使用var關(guān)鍵字可以避免在聲明時進行初始化

示例:在這里,我們使用短聲明運算符聲明變量,而未指定變量的類型。變量的類型由:=運算符右側(cè)的表達式類型決定。

package main

import "fmt"

func main() {

    //聲明和初始化變量
    a := 30

    //接受一個字符串變量
    Language := "Go 語言菜鳥教程"

    fmt.Println("a的值為: ", a)
    fmt.Println("Language的值: ", Language)

}

輸出:

a的值為:  30
Language的值:  Go 語言菜鳥教程

使用短聲明運算符(:=)聲明多個變量

短聲明運算符也可以用于在單個聲明中聲明相同類型或不同類型的多個變量。這些變量的類型由:=運算符右側(cè)的表達式評估。

package main

import "fmt"

func main() {

    //多個相同類型的變量(int)
    nhooo1, nhooo2, nhooo3 := 117, 7834, 5685

    //不同類型的多個變量
    nhooo4, nhooo5, nhooo6 := "GFG", 859.24, 1234

    //顯示值和變量類型
    fmt.Printf("nhooo1 的值為 : %d\n", nhooo1)
    fmt.Printf("nhooo1 的類型為 : %T\n", nhooo1)

    fmt.Printf("\nnhooo2 的值為 : %d\n", nhooo2)
    fmt.Printf("nhooo2 的類型為 : %T\n", nhooo2)

    fmt.Printf("\nnhooo3 的值為 : %d\n", nhooo3)
    fmt.Printf("nhooo3 的類型為 : %T\n", nhooo3)

    fmt.Printf("\nnhooo4 的值為 : %s\n", nhooo4)
    fmt.Printf("nhooo4 的類型為 : %T\n", nhooo4)

    fmt.Printf("\nnhooo5 的值為 : %f\n", nhooo5)
    fmt.Printf("nhooo5 的類型為 : %T\n", nhooo5)

    fmt.Printf("\nnhooo6 的值為 : %d\n", nhooo6)
    fmt.Printf("nhooo6 的類型為 : %T\n", nhooo6)

}

輸出:

nhooo1 的值為 : 117
nhooo1 的類型為 : int

nhooo2 的值為 : 7834
nhooo2 的類型為 : int

nhooo3 的值為 : 5685
nhooo3 的類型為 : int

nhooo4 的值為 : GFG
nhooo4 的類型為 : string

nhooo5 的值為 : 859.240000
nhooo5 的類型為 : float64

nhooo6 的值為 : 1234
nhooo6 的類型為 : int

:=聲明的是局部變量還是全局變量?

借助短變量聲明操作符(:=),您只能聲明僅具有塊級作用域的局部變量。通常,局部變量在功能塊內(nèi)部聲明。如果嘗試使用short聲明運算符聲明全局變量,則會拋出錯誤消息。

package main  
    
import "fmt"
    
//使用var關(guān)鍵字進行聲明
//并初始化變量
//它是包變量,或者你可以說全局范圍
var nhooo1 = 900  
    
//使用簡短的變量聲明
//它會拋出一個錯誤
nhooo2 := 200  
    
func main() {  
    
//在函數(shù)內(nèi)部訪問nhooo1
fmt.Println(nhooo1)  
   
// 在函數(shù)內(nèi)部訪問nhooo2
fmt.Println(nhooo2)  
        
}

輸出錯誤:

.\test.go:12:1: syntax error: non-declaration statement outside function body
#.\test.go:12:1:語法錯誤:函數(shù)主體外的非聲明語句
package main

import "fmt"

//使用var聲明一個全局變量
var nhooo1 = 900

func main() {

    //使用簡短的變量聲明
    //在主函數(shù)中
    //它具有局部作用域,即不能
    //在主函數(shù)之外訪問
    nhooo2 := 200

    //在函數(shù)內(nèi)部訪問nhooo1
    fmt.Println(nhooo1)

    //在函數(shù)內(nèi)部訪問nhooo2
    fmt.Println(nhooo2)

}

輸出:

900
200
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清