Go面试题7

Posted by     "" on Thursday, December 19, 2019

Go面试题7

1: 关于字符串连接, 下面语法正确的是?

  • A. str :='abc' + '123'
  • B. str := "abc" + "123"
  • C. str := '123' + "abc"
  • D. fmt.Sprintf("abc%d", 123)

2: 下面这段代码能否编译通过?, 如果可以输出什么?

const (
    x = iota
        - 
        y
    z = "zz"
    k
    p = iota
)
func main() {
    fmt.Println(x,y,z,k,p)
}

3: 下面赋值正确的是():

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

参考答案及解析

  1. 答案及解析: BD.知识点: 字符串连接. 除了以上两种连接方式,还有strings.Join(), buffer.WriteString()等.

  2. 答案及解析: 编译通过,输出0 2 zz zz 5. 知识点: iota的使用.

  3. 答案及解析: BD.知识点: nil只能赋值给指针,chan, func, interface, mapslice类型的变量.强调下D选项的error类型, 它是一种内置接口类型, 看下方贴出的源码就知道, 所以D是对的.

type error interface {
    Error() string
}

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

使用微信扫描二维码完成支付