小编典典

Go中int类型的最大值

go

如何指定可代表unsigned整数类型的最大值?

我想知道如何min在下面的循环中初始化,该循环从某些结构迭代计算最小和最大长度。

var minLen uint = ???
var maxLen uint = 0
for _, thing := range sliceOfThings {
  if minLen > thing.n { minLen = thing.n }
  if maxLen < thing.n { maxLen = thing.n }
}
if minLen > maxLen {
  // If there are no values, clamp min at 0 so that min <= max.
  minLen = 0
}

以便第一次通过比较minLen >= n


阅读 456

收藏
2020-07-02

共1个答案

小编典典

https://groups.google.com/group/golang-
nuts/msg/71c307e4d73024ce?pli=1

德语部分:

由于整数类型使用二进制补码运算,可以推断最小/最大常数值intuint。例如,

const MaxUint = ^uint(0)
const MinUint = 0
const MaxInt = int(MaxUint >> 1)
const MinInt = -MaxInt - 1

根据@CarelZA的评论:

uint8  : 0 to 255 
uint16 : 0 to 65535 
uint32 : 0 to 4294967295 
uint64 : 0 to 18446744073709551615 
int8   : -128 to 127 
int16  : -32768 to 32767 
int32  : -2147483648 to 2147483647 
int64  : -9223372036854775808 to 9223372036854775807
2020-07-02