2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f

2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。

package main

import "fmt"

func main() {
    s := []string{"A", "B", "C"}

    t := s[:1]
    fmt.Println(&s[0] == &t[0])

    u := append(s[:1], s[2:]...)
    fmt.Println(&s[0] == &u[0])
}

答案选C。这里的关键点是 append(s[:1], s[2:]…) 会不会导致扩容。s[:1] 相当于 s[:1:3],即容量是也是 3,因此 append 一个元素(s[2:]…)并不会导致扩容,因此第一个元素还是原来 s[0] 的元素。
在这里插入图片描述

posted @ 2022-10-28 21:39  福大大架构师每日一题  阅读(7)  评论(0编辑  收藏  举报  来源