Golang 语言面试题 - 第 15 天

Seek · 2021-02-28 14:26:33 · 1630 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-02-28 14:26:33 的主题,其中的信息可能已经有所发展或是发生改变。

欢迎留言区交流!

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 都可以

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

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

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

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

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())
}

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


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1630 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传