最初のitoaはとは何ですか
CONSTにイオタは、一定のカウンタgolang言語であるにCONST定数内,,すなわち、式のみを使用することができます。
(CONST内部の最初の行の前)constキーワードが0にリセットされる場合、各新しい行イオタ定数宣言は、一度カウントされるCONST、イオタ現れます。
行番号を参照して理解することができ、それは、行インデックスはイオタCONSTステートメントブロックを理解されるです。
その性質上例次のように:
その様々な特徴は、一例として説明します。
1は、それぞれの時間のconstが表示され、イオタはゼロに初期化いたします。
const a = iota // a=0
const (
b = iota //b=0
c //c=1
)
2、カスタムタイプ
一定の成長以来、多くの場合、あなたが増分の設定を完了するために、コンパイラに依存することができ、カスタム列挙型が含まれています。
type Newtype int
const (
T1 Newtype = iota // 0
T2 // 1
T3 // 2
T4 // 3
)
3、スキップ値
type AudioOutput int
const (
OutMute AudioOutput = iota // 0
OutMono // 1
OutStereo // 2
_
_
OutSurround // 5
)
図4に示すように、ビットマスク発現
type Allergen int
const (
IgEggs Allergen = 1 << iota // 1 << 0 which is 00000001
IgChocolate // 1 << 1 which is 00000010
IgNuts // 1 << 2 which is 00000100
IgStrawberries // 1 << 3 which is 00001000
IgShellfish // 1 << 4 which is 00010000
)
5、大きさの定義
type ByteSize float64
const (
_ = iota // ignore first value by assigning to blank identifier
KB ByteSize = 1 << (10 * iota) // 1 << (10*1)
MB // 1 << (10*2)
GB // 1 << (10*3)
TB // 1 << (10*4)
PB // 1 << (10*5)
EB // 1 << (10*6)
ZB // 1 << (10*7)
YB // 1 << (10*8)
)
図6に示すように、ラインの場合に定義され
通常のフォームと何ら変わりありません
const (
Apple, Banana = iota + 1, iota + 2
Cherimoya, Durian
Elderberry, Fig
)
イオタ次の行の成長は、すぐにそれへの参照を行っていません。
// Apple: 1
// Banana: 2
// Cherimoya: 2
// Durian: 3
// Elderberry: 3
// Fig: 4
図7に示すように、途中で切断
中間キューをジャンプ、イオタはもはや上書き増分であり続けるんだろう。しかし、別のイオタがそれに答えると、インクリメントしていきます。コンタクト6に5 itoaはではない以下の実施例は、以下の通りである5と中間インサート6。
const(
a = iota
b = 5
c = iota
d = 6
e
f
)
そして、その結果をプリントアウト052 666です
賛否両論
あなたが列挙便利定義する場合、定義を簡素化することができますイオタを使用してください。コードを変更する必要がある場合は、だけでなく、比較的容易に拡張または変更します。また、細胞内のいくつかの力で見てください。
しかし、itoaはので、コードはそう簡単に相対して理解されていません。これは、コードの理解の負担が増加します。使用量がitoaは理解していない同僚と一致するだけでなく、勉強したくない場合は、掘削の可能性が高くなります。
だから私はそのシンプルな機能は好きなだけで、つまり、適切な使用をお勧めします。私は主張する:コードの基本的な要件の1つはポスターです。マシンまでと何の問題を実行していない、人々が簡単に読み取ることができる良いコードです。
最後に、類似したのStrConv-itoaはがあることを覚えておいてください
ほとんどの言語は、itoaは中のconstと非常に異なっているitoaは機能を持っています。itoaは関数は、数値、文字列の文字列を変換するために使用されます。itoaは関数のgolangはstrconv.Itoa(int型)文字列です。
明らかに両者を区別するだけでなく、理解し、覚えておくのに役立ちます。
批判や訂正へようこそ