gpt4 book ai didi

go - := and = in Go?有什么区别

转载 作者:IT王子 更新时间:2023-10-29 01:15:40 24 4
gpt4 key购买 nike

我是 Go 编程语言的新手。

我注意到 Go 中有一些奇怪的地方:我认为它使用了 := 并在 Python 中替代了 =,但是当我使用 = 时去它也是有效的。

:== 有什么区别?

最佳答案

= 是赋值。关于 Go 中赋值的更多信息:Assignments

=:= 之间的细微差别在于 = 用于变量声明的时间。

Go 中变量声明的一般形式是:

var name type = expression

上面的声明创建了一个特定类型的变量,为其附加了一个名称,并设置了它的初始值。 type= expression 可以省略,但不能同时省略。

例如:

var x int = 1
var a int
var b, c, d = 3.14, "stackoverflow", true

:= 被称为 short variable declaration 形式

name := expression

名字的类型由表达式的类型决定

请注意::= 是一个声明,而 = 是一个赋值

因此,简短的变量声明必须声明至少一个新变量。这意味着一个简短的变量声明不一定在其左侧声明所有变量,当其中一些变量已经在同一个词法 block 中声明时,:= 就像对那些变量的赋值变量

例如:

 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”语句的初始值设定项,它们可用于声明局部临时变量。

更多信息:

variable declarations

short variable declarations

关于go - := and = in Go?有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com