点击上方蓝色“Golang来啦”关注我哟
加个“星标”,天天 15 分钟,一起学 Go
三天假期一晃而过,愉快而又短暂!学习、工作更有劲儿了,加油!
有些同学真勤奋,放假期间都还在答题,向你们学习!一起来看下假期前的题目解答:
1.参考答案及解析:A 声明的是 nil 切片;B 声明的是长度和容量都为 0 的空切片。第一种切片声明不会分配内存,优先选择。
2.参考答案及解析:BD。函数参数为 interface{} 时可以接收任何类型的参数,包括用户自定义类型等,即使是接收指针类型也用 interface{},而不是使用 *interface{}。
永远不要使用一个指针指向一个接口类型,因为它已经是一个指针。
3.参考答案及解析:
A. &S{"foo"}
B. *f() 或者 f()
f() 函数返回参数是指针类型,所以可以用 & 取结构体的指针;B 处,如果填 *f(),则 p 是 S 类型;如果填 f(),则 p 是 *S 类型,不过都可以使用 p.m 取得结构体的成员。
欢迎在留言区补充!
看下今天的题目:
1.下面的代码有几处语法问题,各是什么?
package main
import (
"fmt"
)
func main() {
var x string = nil
if x == nil {
x = "default"
}
fmt.Println(x)
}
2.return 之后的 defer 语句会执行吗,下面这段代码输出什么?
var a bool = true
func main() {
defer func(){
fmt.Println("1")
}()
if a == true {
fmt.Println("2")
return
}
defer func(){
fmt.Println("3")
}()
}
答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!
ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!
所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!
推荐阅读:
非懂不可的Slice(二)
Go 语言接口详解(一)
Go 语言接口详解(二)
如果我的文章对你有所帮助,点赞、转发都是一种支持!


给个[在看],是对四哥最大的支持
Go语言题目解答与新题探讨
文章分享了Go语言假期前题目的解答,如nil切片与空切片声明、函数参数为interface{}的情况等,还给出了f()函数返回参数相关解析。同时给出了今天的题目,包括代码语法问题及return后defer语句执行情况,答案将在下篇文章给出。
1709

被折叠的 条评论
为什么被折叠?



