返回顶部
首页 > 资讯 > 后端开发 > GO >Go  iota 常量基本语法介绍
  • 826
分享到

Go  iota 常量基本语法介绍

GO常量 2022-06-07 20:06:54 826人浏览 薄情痞子
摘要

目录Go 语法设计思考为什么叫 iota为什么需要有总结参考资料Go 语言中有一个非常有特色的东西,那就是 iota 常量。经过某鱼的不完全统计,许多 Go 开发者都是由 PH

目录

Go 语法

设计思考

为什么叫 iota

为什么需要有

总结

参考资料

Go 语言中有一个非常有特色的东西,那就是 iota 常量。经过某鱼的不完全统计,许多 Go 开发者都是由 PHP、Java、c++python 等转型过来,对此还是挺好奇的。

Go 语法

在 Go 中枚举常量是使用 iota 枚举器创建的,在功能上,iota 关键字表示从 0 开始的整数常量;在作用上可以简化使用自动递增数字的常量定义,非常方便。

以前定义一个枚举值:

const (
    a = 0
    b = 1
    c = 2
)

Go 有了 iota 关键字后:

const (
    a = iota
    b
    c
)

对应的值结果:

a=0
b=1
c=2

甚至还可以跳着来:

const (
 a = iota
 _
 b
 c
)

对应的值结果:

a=0
b=2
c=3

也可以玩出花来:

const (
 bit0, mask0 = 1 << iota, 1<<iota - 1
 bit1, mask1                           
 _, _                                  
 bit3, mask3                          
)

对应的值结果:

bit0 == 1, mask0 == 0  (iota == 0)
bit1 == 2, mask1 == 1  (iota == 1)
                       (iota == 2, unused)
bit3 == 8, mask3 == 7  (iota == 3)

设计思考

对 iota 有了一定的基本了解后,开始进入我们的主题,和煎鱼一起发散好奇心。

为什么叫 iota,是什么的简称吗?Go 为什么需要有 iota? 为什么叫 iota

实际上 iota 就是全名,在 stackoverflow 的 提问 [1] 中已经有许多社区朋友探讨过(果然好奇的小伙伴挺多的)。

本质上 ”iota“ 是希腊字母表的第 9 个字母。它是数学符号的典型,代表一个非常小的东西。

常用于以下的场景:

作为和与算法中的迭代器。作为下标索引。用于复数的虚数部分。

除了 Go 以外,在 APL、C++,又或是 Scheme 均有有 iota 常量的存在(设计),可以给到大家使用。

Scheme iota 的签名如下:

iota count [start step]

作用是返回一个包含计数数字的列表,从起始点开始,每次增加步长。默认的开始是0,默认的步骤是 1。

例如:

(iota 6)        ⇒ (0 1 2 3 4 5)
(iota 4 2.5 -2) ⇒ (2.5 0.5 -1.5 -3.5)

其实 iota 已经是迭代器的一个 约定式命名 了,可以认为是也业内通识。

为什么需要有

在《 The Go Programming Language Specification [2] 》中存在着对 iota 的明确定义和说明。

如下:

在一个常量声明中, 预先声明的标识符 iota 代表连续的无类型的整数常量。它的值是该常量声明中各 ConstSpec 的索引 ,从0开始。

提取核心意义:Go 中的 iota 是 ConstSpec 索引,也就是 填补 的是连续的无类型整数常量的位置。

因此 Go 中有它的一席位置。

总结

在这篇文章中,我们介绍了 Go 中 iota 的基本语法。同时基于历史资料针对 iota 到底是什么,为什么要这么叫,又有什么用进行了一番研究。

也需要思考另外一个问题,并不是每一门语言都有 iota。那没有 iota 的话会怎么样,不存在是否也有其合理性呢?

参考资料

[1]

提问: https://stackoverflow.com/questions/31650192/whats-the-full-name-for-iota-in-golang

[2]

The Go Programming Language Specification: Https://go.dev/ref/speC#Iota

到此这篇关于Go 为什么要设计 iota 常量的文章就介绍到这了,更多相关Go  iota 常量内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!


您可能感兴趣的文档:

--结束END--

本文标题: Go  iota 常量基本语法介绍

本文链接: https://lsjlt.com/news/30696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Go  iota 常量基本语法介绍
    目录Go 语法设计思考为什么叫 iota为什么需要有总结参考资料Go 语言中有一个非常有特色的东西,那就是 iota 常量。经过某鱼的不完全统计,许多 Go 开发者都是由 PH...
    99+
    2022-06-07
    GO 常量
  • PHP基本语法介绍
    这篇文章主要介绍“PHP基本语法介绍”,在日常操作中,相信很多人在PHP基本语法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP基本语法介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!在进行PH...
    99+
    2023-06-17
  • Csh的基本语法介绍
    在*unix系统中,常用的shell有sh,bash,csh/tcsh, ksh. sh来自于systemV的Unix,是传统的Unix的shell,直到现在很多的系统管理员仍然喜欢使用sh。 bash来自...
    99+
    2022-06-04
    语法 Csh
  • Dockerfile的基本语法介绍
    这篇文章主要讲解了“Dockerfile的基本语法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Dockerfile的基本语法介绍”吧!Dockerfile的组成Dockerfile分为...
    99+
    2023-06-04
  • HTML5 canvas的基本语法介绍
    本篇内容主要讲解“HTML5 canvas的基本语法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5 canvas的基本语法介绍”吧!canvas ...
    99+
    2024-04-02
  • Go语言函数的基本概念及用法介绍
    Go语言是一种快速、简洁、安全并且高效的编程语言,近年来在软件开发领域有着日益增长的影响力。在Go语言中,函数是非常重要的概念,它是程序中最基本的组成单元。本文将介绍Go语言函数的基本...
    99+
    2024-03-09
    函数 用法 概念 go语言
  • C语言常量介绍
    目录什么是常量常量都有哪些这四种常量的特点、注意事项等等1.字面常量:2.const修饰的常变量3.#define定义的标识符常量4.枚举常量总结什么是常量 从字面上简单解释就是不变...
    99+
    2024-04-02
  • SQL Server的基本功能性语法介绍
    这篇文章主要介绍“SQL Server的基本功能性语法介绍”,在日常操作中,相信很多人在SQL Server的基本功能性语法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • SQL常用语法介绍
    这篇文章主要讲解了“SQL常用语法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL常用语法介绍”吧!目录系列教程一、SQL语言的简介和规范二、数据库操作创建库删除库查看数据库列表三、...
    99+
    2023-06-20
  • MYSQL的基本SQL语句介绍
    下文主要给大家带来MYSQL的基本SQL语句介绍,希望这些内容能够带给大家实际用处,这也是我编辑MYSQL的基本SQL语句介绍这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。MYSQL介绍MySQL...
    99+
    2024-04-02
  • Go语言基础知识点介绍
    Go 语言教程 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thom...
    99+
    2024-04-02
  • CSS display属性基本特性和语法介绍
    本篇内容主要讲解“CSS display属性基本特性和语法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS display属性基本特性和语法介绍”吧!C...
    99+
    2024-04-02
  • Python基础语法介绍(1)
    环境配置 开发平台:Mac OS Version 10.13.2 开发工具安装 Python3.6.5 官网安装网址:https://www.python.org/downloads/ Pycharm 官网安装网址:http://w...
    99+
    2023-01-31
    语法 基础 Python
  • Python基础语法介绍(3)
    基本概念、特性 顺序存储相同/不同类型的元素 定义:使用()将元素括起来,元素之间用“,”括开 特性:不可变,不支持添加,修改,删除等操作 查询:通过下标查询元组指定位置的元素 其他 空元组定义:non_tuple = () 只包含一...
    99+
    2023-01-31
    语法 基础 Python
  • C#基本语法简介
    目录一.基础语法二.变量三.常量四.CTS类型五.枚举六.名称空间七.Main()方法1.多个Main()方法2.给Main()方法传递参数八.C#预处理器指令1.#define和#...
    99+
    2024-04-02
  • Kotlin 基础语法详细介绍
    Kotlin 基础语法详细介绍基础语法定义包名包名的定义应当在源文件的头部package my.demoimport java.util.*// ......
    99+
    2023-05-31
    kotlin 基础语法
  • Sharding-Proxy基本功能用法介绍
    目录Sharding-Proxy的安装server.yaml配置config-sharding.yaml的配置config-master_slave.yaml的配置config-sh...
    99+
    2024-04-02
  • CSS3转换(transform)基本用法介绍
    CSS3转换(transform)是一种用于改变元素的形状、大小、位置和旋转的技术。它可以通过应用一系列的转换函数来实现这些效果。下...
    99+
    2023-09-28
    CSS3
  • 详细介绍HTML的基本用法
    HTML是一种基本的网页设计语言,是创建网页的重要工具之一。对于想要学习HTML的初学者来说,了解HTML的基本用法是至关重要的。本文将详细介绍HTML的基本用法,让你轻松入手。一、HTML的基本概念HTML,全称是HyperText Ma...
    99+
    2023-05-14
  • Python tuple方法和string常量介绍
    目录前言1 tuple.count(value)2 tuple.index(value[, start[, end]])1 string.ascii_letters2 string....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作