Golangの使用—iota
1.基本的な考え方
iotaはgolangの特別な変数です
定数が定義されている場合にのみ使用でき、他の場所で使用するとエラーが報告されます
1. Iotaconst
は、検出されるたびに0にリセットされます
次のように:
package main
import "fmt"
const a = iota
const b = iota
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
}
出力:
2. iotaのconst組み合わせ宣言では、iota +1の新しい行がそれぞれ追加されます。
次のコード
package main
import "fmt"
const a = iota
const(
b = iota
c = iota
)
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
fmt.Print("c的常量值为:")
fmt.Println(c)
}
出力
第二に、ジャンプ値の使用
特定の値をスキップしたい場合_
は、それを達成するために使用できます。これは_
ゴミ箱に相当します。
package main
import "fmt"
const(
a = iota
b = iota
_
c = iota
)
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
fmt.Print("c的常量值为:")
fmt.Println(c)
}
_
2を受信したので、この時点でcは3である必要があります
結果
第三に、ラインをジャンプする方法
const本体に他の値の割り当てを挿入した場合、カウントは変更されません
package main
import "fmt"
const(
a = iota
b = 3.14
c = iota
)
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
fmt.Print("c的常量值为:")
fmt.Println(c)
}
結果
4、式の暗黙の使用の1つ
constの組み合わせ宣言で、式が指定されていない場合、最も近い空でない式が使用されます
次のコード:
package main
import "fmt"
const(
a = iota * 2
b = iota * 3
c
d
)
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
fmt.Print("c的常量值为:")
fmt.Println(c)
fmt.Print("d的常量值为:")
fmt.Println(d)
}
ここで、cとdはiota * 3の式を継承します
結果は次のとおりです。
5、式の暗黙的な使用の2番目の方法
行に複数の定義がある場合、1対1の対応があります
次のコード
package main
import "fmt"
const(
a,b = iota,iota+3
c,d
)
func main(){
fmt.Print("a的常量值为:")
fmt.Println(a)
fmt.Print("b的常量值为:")
fmt.Println(b)
fmt.Print("c的常量值为:")
fmt.Println(c)
fmt.Print("d的常量值为:")
fmt.Println(d)
}
ここで、aとbは同じ行にあるため、この時点でiotaは両方とも0です。
このとき、cとdはaとbの式に対応します。
c=iota
d=iota+3
結果は次のとおりです。
GO言語文法入門を参照してください