14

我正在关注本教程,特别是练习 8:

http://tour.golang.org/#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 文档非常困难。

4

8 回答 8

19

简短的变量声明使用以下语法:

ShortVarDecl = IdentifierList ":=" ExpressionList .

它是带有初始化表达式但没有类型的常规变量声明的简写:

于 2013-05-16T01:30:08.570 回答
7

继续前往游览的第 12 页!

围棋之旅

简短的变量声明

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

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

于 2013-05-16T01:47:13.583 回答
3

正如其他人已经解释的那样, := 用于声明和赋值,而 = 仅用于赋值。

例如,var abc int = 20 与 abc := 20 相同。

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

于 2021-02-12T16:50:36.720 回答
1

:= 不是运算符。它是 Short 变量声明子句语法的一部分。

有关此的更多信息:https ://golang.org/ref/spec#Short_variable_declarations

于 2018-11-13T13:21:36.713 回答
1

:=语法是声明和初始化变量的简写,examplef := "car"var f string = "car"

使用短变量声明 operator( :=) 你只能声明局部变量。如果您尝试使用短声明运算符来声明全局变量,那么您将收到错误消息。

更多细节请参考官方文档

于 2021-02-10T15:57:18.573 回答
0

根据我关于 Go 的书,它只是一个简短的变量声明语句,与

var s = ""

但是它更容易声明,而且它的范围不那么广泛。A := var decleration 也不能有 interface{} 类型。这是你可能会在几年后遇到的事情

于 2015-11-25T14:53:33.620 回答
0

:= 表示 Golang 猜测是哪种类型的变量

例如 var number uint16 = 260 这是显式变量声明

var number = 260 这意味着告诉 GOLANG 隐式定义这个变量应该是什么类型

number := 260 表达式赋值运算符和以前一样,但没有 var 并告诉 GOLANG 猜这是什么类型

于 2020-06-02T12:59:49.750 回答
-2

:= 表示一个变量,我们可以使用 := 为变量赋值。

于 2015-11-23T08:39:53.270 回答