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())
}
参考答案及解析
- 答案及解析:
A
. 知识点:nil
切片和空切片,nil
切片和nil
相等,一般用来表示一个不存在的切片;空切片和nil
不相等,表示一个空的集合;
扩展回顾
nil
可以赋值到哪些类型:
![]()
2.答案及解析: A
. UTF-8 编码中, 十进制数字65
对应的符号是A
.
扩展知识: 正确
int --> string
:
![]()
3.答案及解析: 13 23
.知识点: 接口. 一种类型实现多个接口, 结构体Work
分别实现了接口A,B
,所以接口变量a,b
调用各自的方法ShowA()
和ShowB()
输出13,23
.
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
