=和:=操作符之间的区别是什么,它们的用例是什么?他们似乎都是来执行任务的?


当前回答

:=表示声明和赋值,而=表示简单地赋值。

其他回答

:=声明并赋值,=只是赋值

当您不想用类型或结构声明填充代码时,它很有用。

// Usage with =
var i int
var U, V, W float64
var k = 0
var x, y float32 = -1, -2

// Usage with :=
i, j := 0, 10
f := func() int { return 7 }
ch := make(chan int)

:=是声明的简写。

a := 10
b := "gopher"

A将被声明为int并初始化为值10,其中as b将被声明为字符串并初始化为值gopher。

它们的等价物使用=将是

var a = 10
var b = "gopher"

=是赋值运算符。它的使用方式与你在任何其他语言中使用它的方式相同。

当声明变量并且有初始化式时,可以省略该类型(http://tour.golang.org/#11)。

在去 :=也用于声明和赋值 而=仅用于赋值运算

例如:

var s string = "Omkar"

s:= "Omkar"

在Go中,:=用于声明+赋值,而=仅用于赋值。

例如,var foo int = 10与foo:= 10相同。

参考文档:(tour.golang.org)

在函数内部,:=短赋值语句可以用来代替隐式类型的var声明。

在函数之外,每个构造都以关键字(var、func等)开头,并且:=构造不可用。