开发者社区> 问答> 正文

go语言中两个数值类型的变量相加报错是为什么

代码如下

package main

import "fmt"

func main(){
    var a int32 = 5
    var b int64 = 6
    fmt.Println(a+b)
}

运行报错

# command-line-arguments
./j.go:8:18: invalid operation: a + b (mismatched types int32 and int64)

展开
收起
道月芬1 2021-10-21 11:06:29 1757 0
2 条回答
写回答
取消 提交回答
  • 说明这两个类型不能直接相加,应该转为更大的类型再相加

    2021-10-22 10:40:24
    赞同 展开评论 打赏
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,int32和int64也不是相同的类型,编译器不会帮你自动做类型转换,需要强制类型转换。当编译时,会产生错误信息。您可以将他们都显式转型为一个常见类型。

    2021-10-21 11:12:53
    赞同 1 展开评论 打赏
问答分类:
Go
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载