Golangの使用—iota

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言語文法入門を参照してください

おすすめ

転載: blog.csdn.net/rjszz1314/article/details/109789317