Go面试题12

Posted by     "" on Friday, December 20, 2019

Go面试题12

1: 下面属于关键字的是()

  • A. func
  • B. struct
  • C. class
  • D. defer

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

package main

import "fmt"

func main() {
    i := -5
    j := +5
    fmt.Println("%+d %+d", i, j)
}
  • A. -5+5
  • B. +5+5
  • C. 0 0

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

package main

import "fmt"

type People struct {}

func (p *People) ShowA() {
    fmt.Println("showA")
    p.ShowB()
}

func (p *People) ShowB() {
    fmt.Println("showB")
}

type Teacher struct {
    People
}

func (t *Teacher) ShowB() {
    fmt.Println("teacher showB")
}

func main() {
    t := Teacher{}
    t.ShowB()
}

参考答案及解析

1: 答案及解析: ABD. 知识点: Go 语言的关键字.
2: 答案及解析: A. %d表示输出十进制数字. +表示输出数字的符号. 这里不表示取反.
3: 答案及解析: teacher showB. 知识点: 结构体嵌套. 在嵌套结构体中, Pepole成为内部类型, Teacher成为外部类型; 通过嵌套, 内部类型的属性, 方法,可以为外部类型所有,就好像是外部类型自己的一样. 此外内部类型的方法就是被’屏蔽’.这个例子中的ShowB()就是同名方法.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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