亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 中的 := 和 = 有什么區別?

Go 中的 := 和 = 有什么區別?

Go
九州編程 2022-01-04 10:19:49
我是 Go 編程語言的新手。我在 Go 中發現了一些奇怪的東西:我認為它在 Python 中使用:=和替代=,但是當我=在 Go 中使用它時,它也有效。:=和 和有什么不一樣=?
查看完整描述

3 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

=是賦值。更多關于 Go 中的作業:作業


之間的微妙差異=,并:=當=在變量聲明使用。


Go中變量聲明的一般形式是:


var name type = expression

上面的聲明創建了一個特定類型的變量,為其附加了一個名稱,并設置了它的初始值。thetype或 the= expression可以省略,但不能兩者都省略。


例如:


var x int = 1

var a int

var b, c, d = 3.14, "stackoverflow", true

:=被稱為short variable declaration采取形式


name := expression

并且名稱的類型由表達式的類型決定


注意::=是聲明,而是=賦值


因此,一個簡短的變量聲明必須至少聲明一個新變量。這意味著一個簡短的變量聲明不一定會在其左側聲明所有變量,當其中一些變量已經在同一個詞法塊中聲明時,:=就像對這些變量的賦值一樣


例如:


 r := foo()   // ok, declare a new variable r

 r, m := bar()   // ok, declare a new variable m and assign r a new value

 r, m := bar2()  //compile error: no new variables

此外,:=可能只出現在函數內部。在某些上下文中,例如“if”、“for”或“switch”語句的初始值設定項,它們可用于聲明局部臨時變量。


查看完整回答
反對 回復 2022-01-04
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

= 只是分配


:= 是功能塊(非全局)內新變量(至少一個新變量)的聲明和初始化構造:


var u1 uint32      //declare a variable and init with 0

u1 = 32            //assign its value

var u2 uint32 = 32 //declare a variable and assign its value at once

//declare a new variable with defining data type:

u3 := uint32(32)        //inside the function block this is equal to: var u3 uint32 = 32

fmt.Println(u1, u2, u3) //32 32 32

//u3 := 20//err: no new variables on left side of :=

u3 = 20

fmt.Println(u1, u2, u3) //32 32 20

u3, str4 := 100, "str"        // at least one new var

fmt.Println(u1, u2, u3, str4) //32 32 100 str


查看完整回答
反對 回復 2022-01-04
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

在函數內部,:=可以使用簡短的賦值語句代替具有隱式類型的 var 聲明。


例如:


package main


import "fmt"


func main() {

    var i, j int = 1, 2

    k := 3

    c, python, java := true, false, "no!"


    fmt.Println(i, j, k, c, python, java)

}

注意:聲明的變量:=只能在功能塊內部使用。


查看完整回答
反對 回復 2022-01-04
  • 3 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號