您的当前位置:首页正文

golang uint 减法问题

2024-11-23 来源:个人技术集锦
package main

import (
	"fmt"
)

func main() {
	var a uint
	var b uint
	var d uint32
	b = 100
	a = 101
	c := b-a
	fmt.Printf("值:%v\n%v\n%v",b,a+3,c)

}

结果

值:100
104
18446744073709551615
Process finished with the exit code 0

原因::= 会进行类型的自动推导c为uint32位,所以系统会把负数的1的正负位当做最高进制来算,造成数值很大
正确写法

c:=int(a) - int(b)
显示全文