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 サイトの他の関連記事を参照してください。