2022-09-12:以下go语言代码输出什么?A:true;B:false;C:无法编译;D:运行时 panic

2022-09-12:以下go语言代码输出什么?A:true;B:false;C:无法编译;D:运行时 panic。

package main

func main() {
    var x chan<- chan error
    var y chan (<-chan error)
    println(x == y)
}









































答案选C。这道题很多人选A。x和y的类型不一样。x里的元素是chan error类型,y里的元素是<-chan error类型,两者类型不匹配,所以选C。

package main

import "fmt"

func main() {
    var x chan<- chan error = make(chan<- chan error, 1)
    var y chan (<-chan error) = make(chan (<-chan error), 1)
    fmt.Printf("%T\r\n", x)
    fmt.Printf("%T\r\n", y)
    x <- make(chan error)
    y <- make(<-chan error)
    fmt.Println("结束")
}

在这里插入图片描述
在这里插入图片描述

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!