Maison  >  Article  >  développement back-end  >  Pourquoi Go a-t-il conçu la constante iota ?

Pourquoi Go a-t-il conçu la constante iota ?

Golang菜鸟
Golang菜鸟avant
2023-08-04 17:34:201334parcourir

Il y a une chose tout à fait unique dans le langage Go, et c'est la constante iota. Selon certaines statistiques incomplètes, de nombreux développeurs Go sont passés de PHP, Java, C++, Python, etc., et je suis assez curieux à ce sujet.

Apprenons en profondeur avec tout le monde aujourd’hui.

Syntaxe Go

Dans Go, les constantes d'énumération sont créées à l'aide de l'énumérateur iota. Fonctionnellement, le mot-clé iota représente une constante entière à partir de 0 en fonction, il peut simplifier la définition des constantes en utilisant des nombres auto-incrémentés. très pratique.

Défini au préalable une valeur d'énumération :

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

Go Avec le mot-clé iota :

const (
    a = iota
    b
    c
)

Le résultat de la valeur correspondante :

a=0
b=1
c=2

Vous pouvez même accéder à :

const (
 a = iota
 _
 b
 c
)

Le résultat de la valeur correspondante :

a=0
b=2
c=3

Vous pouvez également jouer avec it :

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

La valeur correspondante résultat :

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

Design thinking

Après avoir eu une certaine compréhension de base d'iota, nous avons commencé à entrer dans notre thème et à répandre notre curiosité avec le poisson frit.

  • Pourquoi s'appelle-t-on iota ? Quelle est son abréviation ?
  • Allez, pourquoi as-tu besoin d'iota ?

Pourquoi s'appelle-t-il iota

En fait, iota est le nom complet de nombreux amis de la communauté en ont discuté dans la question[1] sur stackoverflow (comme prévu, il y en a pas mal). quelques amis curieux).

Essentiellement, "iota" est la 9ème lettre de l'alphabet grec. C'est un symbole mathématique typique qui représente quelque chose de très petit.

Pourquoi Go a-t-il conçu la constante iota ?

Couramment utilisé dans les scénarios suivants :

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

除了 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 的明确定义和说明。

如下:

Pourquoi Go a-t-il conçu la constante iota ?

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

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

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

总结

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer