我是编程语言新手.

我注意到围棋中的一些奇怪之处:我以为它在Python中使用了:==,但当我在Go中使用=时,它也是有效的.

:==有什么区别?

推荐答案

=是作业(job).更多关于围棋任务的信息:Assignments

=:=之间的细微区别在于变量声明中使用了=.

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

var name type = expression

上面的声明创建了一个特定类型的变量,给它附加了一个名称,并设置了它的初始值.Either the 100 or the 101 can be omitted, but not both.

例如:

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

:=被称为short variable declaration,它的形式是

name := expression

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

请注意:100 is a declaration, whereas 101 is an assignment

因此,简短的变量声明必须声明at least one new variable.这意味着一个简短的变量声明并不一定要声明其左侧的所有变量,当其中一些变量已经在同一个词法挡路中声明时,那么:=就像是对这些变量的赋值

例如:

 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相关问答推荐

运行add. inf,这样我们就可以在app.conf中使用. inf参数了?

如何在AWS SDK Go v2 STS上正确使用重试

如何使用GO GIN从Auth0 JWT内标识检索权限

使用Go使用Gorm使用外键对数据进行排序

如何使用gopher-lua定义一个Lua函数,该函数有一个预定义的表作为param,Lua脚本可以在其中访问该函数中的表?

使用!NOT运算符的Golang文本/模板多个条件

JWT 如何解析声明有效性和错误?

优化方式中所有可能组合的字符串相似度

xml.Unmarshal 不支持的类型 struct

hyperledger fabric - go:在 $PATH 中找不到可执行文件

Opensearch 错误 ping 弹性服务器:由未知权威签署的 x509 证书

尽管存在 WaitGroup,Goroutines 似乎被打断了

使用 AppID 在 Windows 中启动应用程序并获取 pid

如何使用 math/big 对 bigInt 进行取模?

如何优雅地映射到 Go 中返回可变长度数组的方法?

是否可以使用按位运算在随机 unicode 字符串中找到重复字符?

退格字符在围棋操场中不起作用

我该如何做错误处理惯用的方式

Golang 泛型同时具有接口和实现

AWS EKS 上的 Golang REST API 部署因 CrashLoopBackOff 而失败