我正在按照这个教程学习,具体是第8个练习:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
:=
是什么意思?搜索Go文档十分困难,具有讽刺意味。
我正在按照这个教程学习,具体是第8个练习:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
:=
是什么意思?搜索Go文档十分困难,具有讽刺意味。
继续前往巡回的第12页!
Go 之旅
在函数内部,可以使用 := 短赋值语句代替具有隐式类型的 var 声明。
(在函数外部,每个结构都以关键字开头,:= 结构不可用。)
正如其他人已经解释过的那样,:= 用于声明和赋值,而 = 只用于赋值。
例如,var abc int = 20 与 abc := 20 是一样的。
当您不想在代码中填充类型或结构声明时,这非常有用。
:=
语法是声明和初始化变量的简写形式,例如f:="car"
是var f string ="car"
的简写形式。
短变量声明运算符(:=
)只能用于声明局部变量。如果您尝试使用短声明运算符声明全局变量,则会出现错误。:= 不是一个运算符。它是短变量声明子句语法的一部分。
更多信息请参见:https://golang.org/ref/spec#Short_variable_declarations
var s = ""
不过,它更容易声明,并且其范围较小。A:=变量声明也不能具有 interface{} 类型。不过这可能是你几年后才会遇到的问题。
var
,它的行为与:=
完全相同。此外,您可以在var
声明中使用interface{}
类型。 - pjmonk:=代表一个变量,我们可以使用:=为变量赋值。
go := meaning
,golang :=
,但没有找到相关的内容。 - sergserga
和b
,都是string
类型,用从swap("hello", "world")
返回的值进行初始化。 - pjmonk