本文共 1051 字,大约阅读时间需要 3 分钟。
点击上方蓝色“Golang来啦”关注我哟
加个“星标”,天天 15 分钟,一起学 Go
你好哇,欢迎来答题,一起来看下
1.关于 channel 下面描述正确的是?
A. 向已关闭的通道发送数据会引发 panic;
B. 从已关闭的缓冲通道接收数据,返回已缓冲数据或者零值;
C. 无论接收还是接收,nil 通道都会阻塞;
参考答案及解析:ABC。
2.下面的代码有几处问题?请详细说明。
1type T struct { 2 n int 3} 4 5func (t *T) Set(n int) { 6 t.n = n 7} 8 9func getT() T {10 return T{}11}1213func main() {14 getT().Set(1)15}
参考答案及解析:有两处问题:
1.直接返回的 T{} 不可寻址;
2.不可寻址的结构体不能调用带结构体指针接收者的方法;
修复代码:
1type T struct { 2 n int 3} 4 5func (t *T) Set(n int) { 6 t.n = n 7} 8 9func getT() T {10 return T{}11}1213func main() {14 t := getT()15 t.Set(2)16 fmt.Println(t.n)17}
解析若有不妥之处,欢迎在留言区交流、指正!
看下今天的题目:
1func (n N) value(){ 2 n++ 3 fmt.Printf("v:%p,%v\n",&n,n) 4} 5 6func (n *N) pointer(){ 7 *n++ 8 fmt.Printf("v:%p,%v\n",n,*n) 9}101112func main() {1314 var a N = 251516 p := &a17 p1 := &p1819 p1.value()20 p1.pointer()21}
2.下面的代码输出什么?
答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!
ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!
所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!
推荐阅读:
如果我的文章对你有所帮助,点赞、转发都是一种支持!
转载地址:http://twfnb.baihongyu.com/