登录
首页 >  Golang >  Go问答

关于在Go中对混合数字类型进行操作的疑问

来源:stackoverflow

时间:2024-02-18 19:51:26 224浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《关于在Go中对混合数字类型进行操作的疑问》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我知道 go 是一种静态类型语言,不允许混合数字类型的操作,例如,您不能将 int 添加到 float64

package main

import (
    "fmt"
)

func main() {
        var a int = 1
        var b float64 = 1.1
        fmt.println(a + b)
}

运行此程序将导致错误:

无效操作:a + b(int 和 float64 类型不匹配)

但是当我在没有声明变量的情况下进行数学 1 + 1.1 时,程序返回所需的结果,即 2.1

package main

import (
    "fmt"
)

func main() {
        fmt.Println(1 + 1.1)
}

所以我的问题是:为什么 1 + 1.1 有效?当我直接在加法中使用时,11.1的数字类型是什么?


正确答案


正如 @volker 所提到的,这是因为 1 + 1.1 被计算为无类型常量表达式。

所以下面的程序也可以工作,因为现在 ab 都是无类型常量。

package main

import (
    "fmt"
)

func main() {
        const a = 1
        const b = 1.1
        fmt.Println(a + b)
}

终于介绍完啦!小伙伴们,这篇关于《关于在Go中对混合数字类型进行操作的疑问》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>