• 定义常量时如果不是必须指定特定类型,可以省略类型,使用默认类型.且数值类型常量(不定义类型)可以直接进行运算

  • 常量的值可以是表达式,但是不允许出现变量

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. 1、Golang基础--Go简介、环境搭建、变量、常量与iota、函数与函数高级

    1 Go语言介绍 1 golang-->Go--->谷歌公司 2009年 golang:指go语言,指的go的sdk goland:软件,ide:集成开发环境 Java写的 2 Go是静态 ...

  2. Go 初体验 - 常量 与 iota

    常量的概念跟大多数语言一样,都是定义一个不可变的数值 go 语言支持常量,但没有 C# 中的枚举类型,所以常量在 go 语言里多用于枚举 上代码,有注释 输出: 在来看这个代码: 注释已说明结果 io ...

  3. go 学习笔记(2) --变量、常量、iota、数组

    参考网址:https://gobyexample.com 变量 Go中使用全新的关键字var来声明变量.var我们并不陌生,在Javascript 和C#中均有出现.不同的是Go和C#中变量属于强类型 ...

  4. golang初识 和 变量,常量,iota

    目录 一.go语言与python 1. go语言 2. python 二.变量相关 1. go语言的基本语法 2. 标识符和关键字 3. 变量声明 (1)声明变量时未指定初始值 (2)声明变量时指定初 ...

  5. Go语言中的Iota

    一.复习常量 提到Iota这个关键字,就必须要复习一下Go语言的常量. 1.Go语言的常量一般使用const声明 2.Go语言的常量只能是布尔型.数字型(整数型.浮点型和复数)和字符串型 3.Go语言 ...

  6. go语言学习逻辑运算符if判断,iota的理解

    第一天学习go语言,首先吐槽一下,配置go语言浪费了我两个小时的时间 不是在百度,就是在百度的路上,这里介绍一下我的go语言的版本和开发平台 go语言1.12版本,之前没有用过在早的版本了首先记录一下 ...

  7. golang基础--常量与运算符

    常量与运算符 常量的定义 常量的值在编译时已经确定 常量的定义格式与变量的基本相同 等号的右侧必须是常量或者常量表达式 规范: 常量定义时建议都使用大写,单词之间使用大写 便于包的外部调用 如果只限于 ...

  8. GoLand(三)数据类型、变量和常量

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.数据类型 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存, ...

  9. go语言学习 ---iota

    iota iota,特殊常量,可以认为是一个可以被编译器修改的常量. iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota ...

随机推荐

  1. tushare获取股票每日重要的基本面指标数据,并存入Elasticsearch

    tushare是一个开放的,免费的金融数据平台,包含沪深股票数据,指数数据,基金数据,期货数据,期权数据,债券数据,外汇数据,港股数据,行业经济数据,宏观经济数据以及新闻快讯等特色数据.其中以沪深股票 ...

  2. <cctype>的用法

    #include<cctype> 1.isalnum() 检查字符c是十进制数还是大写还是小写字母.如果是,则返回true:如果不是,则返回false. 2.isalpha() 检查字符c ...

  3. vue中的axios.post使用json数据传输,出现请求头字段内容类型是不被允许的情况的解决方案

    如何解决出现AXIOS的Request header field Content-Type is not allowed by Access-Control-Allow-Headers in pref ...

  4. url-pattern / 与/* 的区别

    其中/和/*的区别:< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url 不会匹配到模式为*.jsp这样的后缀型url,即:*.j ...

  5. 记2017年年底,几次Python后端面试

    1. 果壳 电话面试: 说一下TCP的三次握手,四次挥手,为什么会这样? http安全的性的了解,说一下对cookie和session的了解: 对mysql的了解,说一下你常用的数据类型,char和v ...

  6. TypeScript 解构

    ⒈解构数组 最简单的解构莫过于数组的解构赋值了: let input = [1, 2]; let [first, second] = input; console.log(first); // out ...

  7. spark异常篇-Removing executor 5 with no recent heartbeats: 120504 ms exceeds timeout 120000 ms 可能的解决方案

    问题描述与分析 题目中的问题大致可以描述为: 由于某个 Executor 没有按时向 Driver 发送心跳,而被 Driver 判断该 Executor 已挂掉,此时 Driver 要把 该 Exe ...

  8. MySQL 数据库面试题

    原文出处:https://juejin.im/post/5a9ca0d6518825555c1d1acd 作者:Java3y 本文在原文基础上进行修改,而且没有特定针对MySQL. 一.存储过程(以及 ...

  9. Graphite简要教程

    转载自DevOps实战:Graphite监控上手指南 英文原文Getting Started with Monitoring using Graphite 英文原文Google快照 作者 Frankl ...

  10. table html

    <html><head><title>demo-110101</title><style type="text/css"> ...