golang整型计算类型转换

  1. golang整型计算类型转换

golang整型计算类型转换

package main

import "fmt"

func main() {
    // go 语言中不会对变量进行类型转换,需要自己手动转换
    // 例如 int 和 int8 相加时,就不能相加,需要转换成一致的类型
    var (
        d1 int  = 10
        d2 int8 = 10
    )
    // fmt.Println(d1 + d2) // 报错:invalid operation: d1 + d2 (mismatched types int and int8)

    // 上面会报错,因为 int 类型和 int8 类型不能直接相加,需要进行转换,例如
    fmt.Println(d1 + int(d2))
    fmt.Println(int8(d1) + d2)

    // 注意!在转换的时候,如果是把范围大的类型转换为范围小的类型,需要注意转换的范围是否合适
    // 例如 int 转 int8,64位系统 int 有64位,取值很大,而 int8 只能取 -128-127,如果 int 类型的数字为1000,转为 int8 结果就不对,短的位会进行截取
    var (
        d3 int  = 1000
        d4 int8 = 100
    )
    fmt.Println(int8(d3))      // 1000 int 类型转 int8 类型的值为 -24
    fmt.Println(int8(d3) + d4) // 76 这里的结果是76,而不是1100,因为 1000 转int8 的结果并不是1000. int8 最大只能取值127
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com