2022-07-24:以下go語言程式碼輸出什麼?A:[]int{};B:[]int(nil);C:panic

moonfdd發表於2022-07-24

2022-07-24:以下go語言程式碼輸出什麼?A:[]int{};B:[]int(nil);C:panic;D:編譯錯誤。

package main

import (
    "fmt"
)

func f(a ...int) {
    fmt.Printf("%#v\n", a)
}

func main() {
    f()
}

答案選B,但卻有 58% 的使用者選的 A。首先,a 的型別是 []int,呼叫 f 時,沒有傳遞任何引數,因此相當於值是 nil,即 a 的型別是 []int,值是 nil。而 fmt.Printf 的動詞 %#v 會同時列印型別和值。所以結果是 B。
在這裡插入圖片描述

本作品採用《CC 協議》,轉載必須註明作者和本文連結
微信公眾號:福大大架構師每日一題。最新面試題,涉及golang,rust,mysql,redis,雲原生,演算法,分散式,網路,作業系統。

相關文章