2022-10-20:以下go语言代码输出什么?A:7;B:7.0;C:0;D:编译错误。 package

2022-10-20:以下go语言代码输出什么?A:7;B:7.0;C:0;D:编译错误。

package main

import (
    "fmt"
)

func main() {
    const X = 7.0
    var x interface{} = X
    if y, ok := x.(int); ok {
        fmt.Println(y)
    } else {
        fmt.Println(int(y))
    }
}















答案选C。X是无类型常量,当赋值给需要类型的变量时,因为 7.0 的默认类型是 float64,因此,x.(int) 的断言是失败的,断言失败,y 的值就是 int 类型的默认值,即 0。实际上,int(y) 这里的类型转换是必须要的,直接 fmt.Println(y) 结果是一样的。
在这里插入图片描述

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信公众号:福大大架构师每日一题。最新面试题,涉及golang,rust,mysql,redis,云原生,算法,分布式,网络,操作系统。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
470
粉丝
21
喜欢
37
收藏
22
排名:457
访问:1.9 万
私信
所有博文
社区赞助商