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

2022-09-12 22:06:25 浏览数 (1)

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

代码语言:go复制
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。

代码语言:go复制
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("%Trn", x)
	fmt.Printf("%Trn", y)
	x <- make(chan error)
	y <- make(<-chan error)
	fmt.Println("结束")
}
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

0 人点赞