Go で符号なし整数の最大値を検出する
Go で符号なし整数を扱う場合、多くの場合、表現可能な最大値を決定する必要があります。価値。この値は、uint8、uint16、uint64 などの型のビット長によって異なります。
比較計算のための minLen の初期化
提供されたループでは、 minLen 変数は、反復中に発生する thing.n の潜在的な値よりも大きくなるように初期化する必要があります。これにより、ループは、sliceOfThings から最小長と最大長を正しく見つけることができます。
最大値の仕様
ドキュメントとフォーラムのディスカッションによると、符号なし整数型は、次のようなビット単位の演算を使用して決定できます。
const MaxUint = ^uint(0)
たとえば、次のようになります。 uint32 型の場合、MaxUint は 4294967295 になります。
minLen の初期化
MaxUint 定数を使用すると、それに応じて minLen を初期化できます。
var minLen uint = ^uint(0)
これにより、最初の比較 minLen が確実に行われます。 > thing.n は反復の前に常に true と評価され、最小長の初期仮定として最大値でループを開始できるようになります。
以上がGo における符号なし整数の最大値はいくらですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。