1. 程式人生 > 其它 >GO面試第六天

GO面試第六天

1.關於字串連線,下面語法正確的是?

  • A. str := ‘abc’ + ‘123’
  • B. str := “abc” + “123”
  • str := ‘123’ + “abc”
  • D. fmt.Sprintf(“abc%d”, 123)

參考答案及解析:BD。知識點:字串連線。除了以上兩種連線 方式,還有 strings.Join()、buffer.WriteString()

2.下面這段程式碼能否編譯通過?如果可以,輸出什麼?

const (
     x = iota
     _
     y
     z = "zz"
     k 
     p = iota
 )

func main()  {
    fmt.Println(x,y,z,k,p)
}

參考答案及解析:編譯通過,輸出:0 2 zz zz 5。知識點:iota 的使用。給大家貼篇文章,講的很詳細
https://www.cnblogs.com/zsy/p/5370052.html

3.下面賦值正確的是()

  • A. var x = nil
  • B. var x interface{} = nil
  • C. var x string = nil
  • D. var x error = nil

參考答案及解析:BD。知識點:nil 值。nil 只能賦值給指標、chan、func、interface、map 或 slice 型別的變數。強調下 D 選項的 error 型別,它是一種內建介面型別,看下方貼出的原始碼就知道,所以 D 是對的。

type error interface {
    Error() string
}