c语言中冒号运算符,冒号等于 - G之间的差异:=和=运算符

正如其他人已经解释的那样,:=用于声明和赋值,并尝试自动猜测(推断)变量的类型。

这是一种简短的形式:

var foo int

foo = 32

// OR:

var foo int = 32

// OR:

var foo = 32

一些规则

你不能使用:= =。

illegal := 42

func foo() {

legal := 42

}

你不能两次使用它们:

legal := 42

legal := 42 //

因为,:=引入了“一个新变量”,因此使用它两次不会重新声明第二个变量,所以它是非法的。

但是,如果其中一个变量是新的,则可以在“多变量”声明中使用它们两次:

foo, bar := someFunc()

foo, jazz := someFunc() //

baz, foo := someFunc() //

这是合法的,因为,您没有声明所有变量,您只是将新值重新分配给现有变量,并同时声明新变量。

您可以在较新的范围内使用short声明变量,即使该变量已在以下情况下使用相同的名称声明:

var foo int = 34

func some() {

// because foo here is scoped to some func

foo := 42 //

foo = 314 //

}

这里,:=是合法的,因为它在if func的范围内声明了=。 foo = 314是合法的,因为它只是为foo指定了一个新值。

_

您可以将它们用于多变量声明和赋值:

foo, bar := 42, 314

jazz, bazz := 22, 7

_

您可以在短语句上下文中声明相同的名称:if,for,switch:

foo := 42

if foo := someFunc(); foo == 314 {

// foo is scoped to 314 here

// ...

}

// foo is still 42 here

因为,:=在=中,只属于那个if条款并且它在不同的范围内。

因此,作为一般规则:如果要轻松声明变量,可以使用:=,或者,如果要覆盖现有值,则可以使用=。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值