给定以下功能:
func convertValue(contents string) (int, error) {
return strconv.Atoi(contents)
}
当我运行以下测试时
var convertValues = []struct {
contents string
value int
}{
{"9223372036854775807", math.MaxInt64},
{"−9223372036854775808", math.MinInt64},
}
func TestConvertValue(t *testing.T) {
for _, values := range convertValues {
value, err := convertValue(values.contents)
if err != nil {
t.Error("Expecting", values.value, "but got error", err.Error())
}
if value != values.value {
t.Error("Expecting ", values.value, ", but got ", value)
}
}
}
它适用于 MaxInt64,但不适用于 MinInt64。我在 MacBookPro 上运行它,所以它在 64 位上运行。我已经用以下内容仔细检查了这一点
func TestIntSize(t *testing.T) {
const PtrSize = 32 << uintptr(^uintptr(0)>>63)
fmt.Println(runtime.GOOS, runtime.GOARCH)
fmt.Println(strconv.IntSize, PtrSize)
}
它返回了
darwin amd64
64 64
我究竟做错了什么?
慕姐4208626
相关分类