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

这是一种简短的形式:

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条款并且它在不同的范围内。

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

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

  1. C语言中判断浮点数是否等于0

    1.C语言中判断浮点数是否等于0: 2.C语言中判断两个浮点数是否相等: float.double分别遵循R32-24,R64-53的标准.他们尾数的位数分别是23.52,即误差在2^-23,2^-5 ...

  2. html语言中的双冒号,::before 和:after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用...

    标题:::before 和:after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用? 相关知识点: 单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素.(伪元素由双冒号和伪 ...

  3. 项目中所了解的一些浏览器之间的差异

    各主流浏览器的区别各主流浏览器的区别 http://www.cnblogs.com/lhb25/archive/2013/06/05/html5-and-css3-2013.html 一. Tride ...

  4. html语言中的双冒号,css单冒号和双冒号用法和区别

    最近突然被别人问起css单冒号和双冒号有什么区别,答曰:"不知道". 虽然还在填坑中,但作为一个跨过了初级的FEer,感觉着实汗颜,刚好今天下午在搜别的问题的时候,突然看到一个对比 ...

  5. c语言中无符号和有符号之间的运算

    关于计算机中有符号,无符号数值的表示以及它们之间的运算 是基本知识,但工作这么多年也不敢说完全搞明白透彻. 这几天在将知识点进行了一些梳理,并做了一些有意思的试验. 计算机中,数值的表示和运算都是用补 ...

  6. R语言中如何导入元素两两之间的距离数据

    R语言中dist()函数与as.dist()函数 下面给出五个元素两两之间的距离,试利用最短距离法.最长距离法和类平均法做出五个元素的谱系聚类,画谱系图并做出比较. 如何将其数据导入R中如图所示 其表 ...

  7. r计算百分位数_R中产生的分位数和百分位数之间的差异

    请原谅我的数学,但为什么这两个代码的结果不同?预计2015年第63和82行累计百分比的支出与第二年产生的支出相同.第一个是X63的0.591,X82的0.858,第二个代码在cumsum_pct中分别 ...

  8. c语言程序可以单独编译,c语言中的函数可不可以单独进行编译?_后端开发

    在C语言中,要求参加运算的数必须是整数的运算符是什么_后端开发 在C语言中要求参加运算的数必须是整数的运算符是"%":"%"符号在c语言中有两种释义,一是求余符 ...

  9. 一步带你了解C语言中++、--的使用方法!

    一步让你了解C语言中++.--的使用方法! 一.前言 二.++.- -运算符 (1)前缀形式和后缀形式单独使用,并未出现在表达式中 (2)前缀形式后缀形式放入表达式中 三.代码实现 一.前言 C语言中 ...

最新文章

  1. 禁止 Python 子类覆盖父类方法
  2. 如何在jupyter notebook上传文件夹
  3. c# BindingSource的简单应用
  4. linux egrep新添的正则表达式元字符
  5. HTTP Server Error 500 内部服务器错误
  6. 请结合计算机硬件论述指令执行的过程,【计算机组成原理】计算机软硬件组成...
  7. MySQL中EXPLAIN详解
  8. TransH:将知识嵌入到超平面(知识图谱嵌入)2014 AAAI
  9. 基于Udp的Socket网络编程聊天程序
  10. 小程序 — 保存图片到手机相册①
  11. SpringMvc+Mybatis +Oracle
  12. Matlab之三维曲面的绘制
  13. opencv图像处理8-卷积
  14. js高级学习笔记(b站尚硅谷)-3-对象
  15. ERP系统测试用例设计
  16. LVDS接口分类,时序,输出格式
  17. 视频技术系列 - 分析业内数字版权管理DRM技术
  18. 四羧基锌酞菁(ZnC4Pc),Zn-taPc 酞菁类化合物,齐岳生物供应酞菁材料
  19. html5网页流行色,Pantone 2018流行色:紫外光色(附紫色的UI设计作品)
  20. udev (简体中文)

热门文章

  1. 高考语文 古诗给力绝对 对不起老师 古诗背窜了
  2. 初识Vue CLI 是做什么的?vue cli 目录内容
  3. Python安装pymysql
  4. 各大公司电子类招聘题目精选
  5. [超详细]MySQL本地版本升级(从5.5.20到8.0.21)
  6. 如何让网速一骑绝尘,华为云CDN带你体验
  7. jmeter连接mysql数据库并传递参数
  8. android 字母索引三方,Android ListView字母索引(仿微信通讯录列表)
  9. 37.(前端)菜单的展示
  10. 牢牢守住自建房安全整治“三条防线”