囲碁言語の基本的な列挙の使い方と例
2022-01-06 03:30:47
概要
変数の値を1つずつリストアップし、変数はリストアップされた値の範囲に限定される
Goには列挙データ型はありませんが、iotaパターンでconstを使って実装することができます
I. 一般的な列挙
const (
cpp = 0
java = 1
python = 2
golang = 3
)
II. 自己増殖型列挙
iotaは定数を含む式でのみ使用可能です。
fmt.Println(iota) //undefined: iota
デフォルトでは0から始まり、constで1行増えるごとに1ずつ加算されます。
const (
a = iota //0
c //1
d //2
)
const が現れるたびに iota を 0 に初期化する。
const d = iota // a=0
const (
e = iota // b=0
f // c=1
)
iotaが中断された場合、明示的に再開する必要があります!!!
const (
Low = iota //0
Medium //1
High = 100 //100
Super //100
Band = iota //4
)
同じ行であれば、値は同じです
const (
i = iota
j1, j2, j3 = iota, iota, iota
k = iota
)
スキップ可能な値
const (
k1 = iota // 0
k2 // 1
_ // 2
_ // 3
k3 // 4
)
中間に値を挿入する
const (
Sun = iota // Sun = 0
Mon // Mon = 1
Tue = 7 // 7
Thu = iota // 3
Fri // 4
)
備考
- iota は const と共に使用する必要があります、さもなければ未定義です: iota
- const が現れるたびに iota を 0 に初期化する。
- 同じ行であれば、値は同じになる
コード
package main
import "fmt"
func main() {
//general enumeration
const (
cpp = 0
java = 1
python = 2
)
fmt.Printf("cpp=%d java=%d python=%d\n", cpp, java, python) //a=0 b=1 c=2
//1.iota can only be used in expressions with constants
//fmt.Println(iota) //undefined: iota
//2. It starts at 0 by default and adds 1 for each additional line in const
const (
a = iota //0
b //1
c //2
)
fmt.Printf("a=%d b=%d c=%d\n", a, b, c) //a=0 b=1 c=2
// 3. Initialize iota to 0 each time const appears
const d = iota // a=0
const (
e = iota //b=0
f // c=1
)
fmt.Printf("d=%d e=%d f=%d\n", d, e, f) //d=0 e=0 f=1
//4. If iota is interrupted, it must be explicitly restored!!!
const (
Low = iota //0
Medium //1
High = 100 //100
Super //100
Band = iota //4
)
//Low=0 Medium=1 High=100 Super=100 Band=4
fmt.Printf("Low=%d Medium=%d High=%d Super=%d Band=%d\n", Low, Medium, High, Super, Band)
//5. If it is the same line, the values are the same
const (
i = iota
j1, j2, j3 = iota, iota, iota
k = iota
)
//i=0 j1=1 j2=1 j3=1 k=2
fmt.Printf("i=%d j1=%d j2=%d j3=%d k=%d \n", i, j1, j2, j3, k)
//6. skippable values
const (
k1 = iota // 0
k2 // 1
_ // 2
_ // 3
k3 // 4
)
// k1=0 k2=1 k3=4
fmt.Printf("k1=%d k2=%d k3=%d \n", k1, k2, k3)
//7. Insert a value in the middle
const (
Sun = iota // Sun = 0
Mon // Mon = 1
Tue = 7 //7
Thu = iota // 3
Fri // 4
)
// Sun=0 Mon=1 Tue=7 Thu=3 Fri=4
fmt.Printf("Sun=%d Mon=%d Tue=%d Thu=%d Fri=%d\n", Sun, Mon, Tue, Thu, Fri)
}
以上、Go言語の基本的な列挙の使い方と例について詳しく説明しました。
関連
-
golang マイクロサービスフレームワーク 基本的なGin 基本的なルーティング 使い方 詳細
-
Go言語基本変数宣言・初期化例詳細
-
Go言語for loop文の基本的な使い方と例
-
Go言語 netパッケージ RPCリモートコール 3つの方法 httpとjson-rpcとtcp
-
Golangの高性能な永続化ソリューションBoltDB Databaseの紹介
-
golangにおける構造体操作
-
囲碁相互排他ロックと読み書き相互排他ロックの実装
-
Go Pluginでプラグインプログラミングを簡単に実装する方法
-
GOウェブデータベース前処理実装
-
go言語 yaml からマップへの変換、マップトラバーサルの実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン