你好哇,欢迎来答题,一起来看下​​昨天题目​​的解析:

1.interface{} 是可以指向任意对象的 Any 类型,是否正确?

  • A. false
  • B. true

参考答案及解析:B。

2.下面的代码有什么问题?

1type ConfigOne struct {
2 Daemon string
3}
4
5func (c *ConfigOne) String() string {
6 return fmt.Sprintf("print: %v", c)
7}
8
9func main() {
10 c := &ConfigOne{}
11 c.String()
12}

1type ConfigOne struct {
2 Daemon string
3}
4
5func (c *ConfigOne) String() string {
6 return fmt.Sprintf("print: %v", c)
7}
8
9func main() {
10 c := &ConfigOne{}
11 c.String()
12}

参考答案及解析:无限递归循环,栈溢出。知识点:类型的 String() 方法。如果类型定义了 String() 方法,使用 Printf()、Print() 、 Println() 、 Sprintf() 等格式化输出时会自动使用 String() 方法。

解析若有不妥之处,欢迎在留言区交流、指正!

看下今天的题目:

1.定义一个包内全局字符串变量,下面语法正确的是?

  • A. var str string
  • B. str := ""
  • C. str = ""
  • D. var str = ""

2.下面的代码有什么问题?

1func main() {
2
3 wg := sync.WaitGroup{}
4
5 for i := 0; i < 5; i++ {
6 go func(wg sync.WaitGroup, i int) {
7 wg.Add(1)
8 fmt.Printf("i:%d\n", i)
9 wg.Done()
10 }(wg, i)
11 }
12
13 wg.Wait()
14
15 fmt.Println("exit")
16}

1func main() {
2
3 wg := sync.WaitGroup{}
4
5 for i := 0; i < 5; i++ {
6 go func(wg sync.WaitGroup, i int) {
7 wg.Add(1)
8 fmt.Printf("i:%d\n", i)
9 wg.Done()
10 }(wg, i)
11 }
12
13 wg.Wait()
14
15 fmt.Println("exit")
16}

答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!

ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的,感激!

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!


如果我的文章对你有所帮助,点赞、转发都是一种支持!

Go 面试每天一篇(第 80 天)_递归

Go 面试每天一篇(第 80 天)_字符串_02