常量和iota
定义常量时如果不是必须指定特定类型,可以省略类型,使用默认类型.且数值类型常量(不定义类型)可以直接进行运算
常量的值可以是表达式,但是不允许出现变量
func main() {
const a string = "smallming"
const b =
const c = * + //不要指定类型
const d = 1.5//不要指定类型
fmt.Printf("%T %T",c,d)//int float
fmt.Println(c+d)//12.5
//下面这种方式是错误的
i :=
const e = i* + //const initializer i * 2 + 5 is not a constant
}
- 当定义多个常量时官方推荐的方式
const (
a =
b =
c = true
)
定义多常量时后一个常量如果没有赋值,与前一个常量值相同.
第一个常量必须赋值
func main() {
const (
a =
b
c
)
fmt.Println(a,b,c)//输出:1 1 1
}
常量生成器
当一组常量都是数值类型,可以使用常量生成器iota指定这组常量按照特定规则变化
iota起始值为0,每次增加1
func main() {
const (
a = iota
b
c
)
fmt.Println(a, b, c) //输出: 0 1 2
const (
d = iota <<
e
f
)
fmt.Println(d, e, f) //输出:0 2 4
}
无论是否使用iota,一组常量中每个的iota值是固定的,iota按照顺序自增1
每组iota之间无影响
func main() {
const (
a = //iota=0
b = //iota=1
c = iota //iota=2
d //iota=3
)
fmt.Println(a, b, c, d) //输出5 3 2 3
const (
e = iota //iota=0
f //iota=1
g = //iota=2
h //iota=3
i = iota //iota=4
j //iota=5
)
fmt.Println(e, f, g, h, i, j) // 0 1 10 10 4 5
}
常量和iota的更多相关文章
- 1、Golang基础--Go简介、环境搭建、变量、常量与iota、函数与函数高级
1 Go语言介绍 1 golang-->Go--->谷歌公司 2009年 golang:指go语言,指的go的sdk goland:软件,ide:集成开发环境 Java写的 2 Go是静态 ...
- Go 初体验 - 常量 与 iota
常量的概念跟大多数语言一样,都是定义一个不可变的数值 go 语言支持常量,但没有 C# 中的枚举类型,所以常量在 go 语言里多用于枚举 上代码,有注释 输出: 在来看这个代码: 注释已说明结果 io ...
- go 学习笔记(2) --变量、常量、iota、数组
参考网址:https://gobyexample.com 变量 Go中使用全新的关键字var来声明变量.var我们并不陌生,在Javascript 和C#中均有出现.不同的是Go和C#中变量属于强类型 ...
- golang初识 和 变量,常量,iota
目录 一.go语言与python 1. go语言 2. python 二.变量相关 1. go语言的基本语法 2. 标识符和关键字 3. 变量声明 (1)声明变量时未指定初始值 (2)声明变量时指定初 ...
- Go语言中的Iota
一.复习常量 提到Iota这个关键字,就必须要复习一下Go语言的常量. 1.Go语言的常量一般使用const声明 2.Go语言的常量只能是布尔型.数字型(整数型.浮点型和复数)和字符串型 3.Go语言 ...
- go语言学习逻辑运算符if判断,iota的理解
第一天学习go语言,首先吐槽一下,配置go语言浪费了我两个小时的时间 不是在百度,就是在百度的路上,这里介绍一下我的go语言的版本和开发平台 go语言1.12版本,之前没有用过在早的版本了首先记录一下 ...
- golang基础--常量与运算符
常量与运算符 常量的定义 常量的值在编译时已经确定 常量的定义格式与变量的基本相同 等号的右侧必须是常量或者常量表达式 规范: 常量定义时建议都使用大写,单词之间使用大写 便于包的外部调用 如果只限于 ...
- GoLand(三)数据类型、变量和常量
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.数据类型 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存, ...
- go语言学习 ---iota
iota iota,特殊常量,可以认为是一个可以被编译器修改的常量. iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota ...
随机推荐
- 【VS开发】内存映射文件3
内存映射文件 内存映射文件,是由一个文件到一块内存的映射.Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping).内存映射文件与虚拟内存有些类似,通过内存映射文 ...
- 在vue的element图片的上传及回调
首先声明,本人用的是element组件写的图片的上传及回调,若非element本方法暂不支持. 下面开始正式讲图片的上传及回调.(本篇拒绝一切花里胡哨,都是干活,言辞粗糙,望请见谅) 1,elemen ...
- 前端JS之HTML利用XMLHttpRequest()和FormData()进行大文件分段上传
用于网页向后端上传大文件 ### 前端代码<body> <input type="file" name="video" id="fi ...
- 破周三,前不着村后不着店的,只好学pandas了,你该这么学,No.9
如果图片无法观看,请移步 https://blog.csdn.net/hihell 周三了,一个星期最难的一天 大中间的,今天还这么热 5月份,36度的高温 天空飘过几个字 屋里学pandas最得劲 ...
- [CF429E]Points ans Segments_欧拉回路
Points and Segments 题目链接:www.codeforces.com/contest/429/problem/E 注释:略. 题解: 先离散化. 发现每个位置如果被偶数条线段覆盖的话 ...
- [bzoj1151][CTSC2007]动物园zoo_状压dp
动物园zoo 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=1151 题解: 我们发现每个点只会往右延伸$5$个,这个数非常小. 再加上每 ...
- git 服务端安装
服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 [root@localhost home]# id git id: git:无此用户 [root@localhost h ...
- python接口测试
引入unittest框架 get请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #coding: utf-8 import un ...
- Pycharm 误删文件夹
在Linux下操作时误删除了Pycharm项目中的文件夹,打开垃圾桶,居然找不到,立马上网查Linux下怎么恢复文件, 冷静一下,不是还有个Ctrl + Z吗,对着Pycharm 文件浏览器 按一下, ...
- Kubernetes组件-DaemonSet
⒈简介 Replicationcontroller和ReplicaSet都用于在Kubermetes集群上部署运行特定数量的pod.但是,当某些情况下我们希望在集群中的每个节点上运行同一个指定的pod ...