Go 定数で Iota を使用して値を効率的にスキップするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-21 18:13:18
オリジナル
989 人が閲覧しました

How to Efficiently Skip Values Using Iota in Go Constants?

Go で Iota を使用して定数を定義するときに値を効率的にスキップする方法?

Go では、iota は複数の定数を順番に定義できる定数ジェネレーターです。ただし、このプロセス中に大量の値をスキップする必要がある場合はどうすればよいでしょうか?

単一グループ、手動オフセット

最も簡単なアプローチは、定数を使用して iota をシフトし、後続の初期化式を残すことです。空の。例:

const (
    APPLE = iota
    ORANGE
    PEAR
    BANANA = iota + 96 // 96 is manually calculated to get 99
    GRAPE
)
ログイン後にコピー

これは、BANANA に 99 を割り当てる前に 96 の値をスキップします。ただし、BANANA の前に要素を追加すると、BANANA と後続の定数の値に影響することに注意してください。

定数グループの分割

この依存関係を回避する必要がある場合は、定数グループを分割して開始できます。新しいもの。 Iota の値は、予約語 const に遭遇すると 0 にリセットされます。例:

const (
    APPLE = iota
    ORANGE
    PEAR
)
const (
    BANANA = iota + 99 // iota is reset to 0
    GRAPE
)
ログイン後にコピー

このメソッドは、BANANA の前に要素を挿入しても、BANANA と後続の定数の値が変更されないことを保証します。

単一グループ、自動オフセット

維持するには値をスキップしながら単一の定数グループを作成する場合は、番号付けを分割したい場所に定数を導入します。後続の行で iota からその値を減算します。

const (
    APPLE = iota
    ORANGE
    PEAR

    _BREAK

    BANANA = iota - _BREAK + 98 // Continues from 98 + 1 = 99
    GRAPE
)
ログイン後にコピー

または、_BREAK を iota 1 で初期化し、適用されるオフセットを _BREAK 自体の値にすることもできます。

const (
    APPLE = iota
    ORANGE
    PEAR

    _BREAK = iota + 1

    BANANA = iota - _BREAK + 99 // Continues from 99
    GRAPE
)
ログイン後にコピー

コード構造と環境設定に最も適したアプローチを選択して、iota を使用して定数を定義するときに値を効率的にスキップします。行きましょう

以上がGo 定数で Iota を使用して値を効率的にスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート