Go面试题15

Posted by     "" on Monday, December 23, 2019

Go 面试题15

1: 下面代码下划线处可以填入哪个选项?

func main(){
    var s1 []int
    var s2 = []int{}
    if _ == nil {
        fmt.Println("yes nil")
    } else {
        fmt.Println("no nil")
    }
}
  • A: s1
  • B: s2
  • C: s1, s2 都可以

2: 下面这段代码输出什么?

func main() {
    i := 65
    fmt.Println(string(i))
}
  • A. A
  • B. 65
  • C: compilation error

3: 下面这段代码输出什么?

type A interface {
    ShowA() int
}

type B interface {
    ShowB() int
}

type Work struct {
    i int
}

func (w Work) ShowA() int {
    return w.i + 10
}

func (w Work) ShowB() int {
    return w.i + 20
}

func main() {
    c := Work{3}
    var a A = c
    var b B = c
    fmt.Println(a.ShowA())
    fmt.Println(b.ShowB())
}

参考答案及解析

  1. 答案及解析: A. 知识点: nil 切片和空切片,nil切片和nil相等,一般用来表示一个不存在的切片;空切片和nil不相等,表示一个空的集合;

扩展回顾nil可以赋值到哪些类型:
nil可以赋值的类型

2.答案及解析: A. UTF-8 编码中, 十进制数字65对应的符号是A.

扩展知识: 正确int --> string:
int to string

3.答案及解析: 13 23.知识点: 接口. 一种类型实现多个接口, 结构体Work分别实现了接口A,B,所以接口变量a,b 调用各自的方法ShowA()ShowB()输出13,23.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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