特殊常量iota:

1.iota的值在遇到const关键字时将被重置为0

2.const中每新增一行常量声明将使iota计数一次,也就是自动加一。

3.iota只能在常量定义中使用。

iota常见使用方法:

1.跳值使用法;

2.插队使用法;

3.表达式隐式使用法;

4.单行使用法;

package main
import (
"fmt"
)
const a = iota
const b = iota
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为0
}
package main

import (
"fmt"
) const a = iota
const (
b = iota
c = iota
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为0
fmt.Println("c的常量值为",c) //值为1
}

所以每新增一行常量声明,这里iota自增一

跳值使用法

以上代码省略....

const (
a = iota
b = iota
_
c = iota
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为1
fmt.Println("c的常量值为",c) //值为3
}

插队使用法

const (
a = iota
b = 3
c = iota
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为3
fmt.Println("c的常量值为",c) //值为2
}

表达式隐式使用法

const (
a = iota * 2
b = iota
c = iota
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为1
fmt.Println("c的常量值为",c) //值为2
}
const (
a = iota * 2
b // 1*2 自动隐士的继承上面非空表达式
c // 2*2
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为2
fmt.Println("c的常量值为",c) //值为4
}
const (
a = iota * 2
b = iota * 3
c
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为3
fmt.Println("c的常量值为",c) //值为6
}

单行使用法

const (
a,b = iota,iota * 2 //同一行iota的值是不加的
c,d //c引用的是a,而不是后面的b iota * 2
e = iota //这行e只有单独一个 因为格式和上面不一样,编辑器会报错,所以要赋值iota
)
func main() {
fmt.Println("a的常量值为",a) //值为0
fmt.Println("b的常量值为",b) //值为0
fmt.Println("c的常量值为",c) //值为1
fmt.Println("d的常量值为",d) //值为2
fmt.Println("e的常量值为",e) //值为2
}

【golang】golang的一些知识要点的更多相关文章

  1. Golang 接口与反射知识要点

    目录 Golang 接口与反射知识要点 1. 接口类型变量 2. 类型断言 3. 鸭子类型 4. 反射机制 5. reflect 包 TypeOf().ValueOf() Type().Kind() ...

  2. 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号

    算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好, ...

  3. 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法

    算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法 ...

  4. CentOs7下systemd管理知识要点

    centOs7的一个巨大的变动就是用systemd取代了原来的System V init.systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/system ...

  5. [CISCO] 转载:冲突域与广播域(区别、知识要点)

    [CISCO] 转载:冲突域与广播域(区别.知识要点) 1.传统以太网操作(Ethernet Connection Ethernet) 传统共享式以太网的典型代表是总线型以太网.在这种类型的以太网中, ...

  6. SDR软件无线电知识要点(三)EVM

    SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...

  7. SDR软件无线电知识要点(一)噪声系数与噪声因子

    SDR软件无线电知识要点(一)噪声系数与噪声因子 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) ...

  8. RIP 知识要点

    RIP知识要点: UDP:520 版本:v1(广播包更新) / v2(组播更新 224.0.0.9  ) 度量值:跳数(最多跳15跳,路由为16跳时路由不可达) =================== ...

  9. javascript必须知道的知识要点(二)

    该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象 ...

  10. javascript必须知道的知识要点(一)

    该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 语句 注释 输出 字面量 变量 数据类型 typeof ...

随机推荐

  1. Day3-A-Problem H. Monster Hunter HDU6326

    Little Q is fighting against scary monsters in the game ``Monster Hunter''. The battlefield consists ...

  2. Android程序的入口点是什么,不是Main()吗

    很多初入Android开发的网页可能不知道Android程序的入口点是什么,不是main()吗,当然我相信回复onCreate的在字面上不算错,但是你们想的是Activity中的onCreate 方法 ...

  3. vue 线上,本地,不同变量配置

    线上的接口和本地的接口不一样,每次打包的时候要手动更改很麻烦.自动让他配置 1.修改package.json  --mode line 传参数line给配置项,编译buildline的时候,就能把li ...

  4. 获取网卡MAC、硬盘序列号、CPU_ID、BIOS编号

    抄来的 获取网卡MAC.硬盘序列号.CPU ID.BIOS编号 本文中所有原理及思想均取自网络,有修改.其中获取硬盘序列号.获取CPU编号.获取BIOS编号的原始代码的著作权归各自作者所有. 以下代码 ...

  5. KAZE特征和各向异性扩散滤波

    kaze feature: http://www.doc88.com/p-6911376909693.html 各向异性扩散滤波  Scale-space and edge detection usi ...

  6. C++编程学习(十一) 指针和引用的区别

    1.指针有自己的一块空间,而引用只是一个别名: 2.使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小: 3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象 的引用: ...

  7. 转载-select、poll、epoll区别总结

    I/O多路复用——epoll函数 select.poll.epoll区别总结 一.select.poll.epoll区别总结   1 本质上都是同步I/O 三者都是I/O复用,本质上都属于同步I/O. ...

  8. Mongoose使用

    文章来自 Mongoose基础入门 Mongoose的API Mongoose模式扩展 指南之查询 指南之验证 mongoose方法很多,很乱,版本不一样,有些方法可能都过时了,所以整理了很久 连接数 ...

  9. U盘启动盘空间变小

    Windows下管理员身份运行cmd,调用diskpart,约5秒进入程序 磁盘管理中新建卷. 建议使用Rufus制作U盘启动盘.

  10. Vue2.x双向数据绑定

    1.vue双向绑定原理 vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给 ...