Go面试题34

Posted by     "" on Thursday, January 2, 2020

Go面试题34

1: 关于类型转换, 下面选项正确的是?

A.
type MyInt int
var i int = 1
var j MyInt = i

B.
type MyInt int
var i int = 1
var j MyInt = (MyInt)i

C.
type MyInt int
var i int = 1
var j MyInt = MyInt(i)

D.
type MyInt int
var i int = 1
var j MyInt = i.(MyInt)

2: 关于switch 语句,下面说法正确的有?

  • A. 条件表达式必须为常量或者整数;
  • B. 单个 case 中,可以出现多个结果项;
  • C. 需要用break来明确添加fallthrough关键字,才会继续执行紧跟的下一个case;

3: 如果Add() 函数的调用代码为:

func main() {
    var a Integer = 1
    var b Integer = 2
    var i interface{} = &a
    sum := i.(*Integer).Add(b)
    fmt.Println(sum)
}

Add 函数定义正确的是()

A.
type Integer int
func (a Integer) Add(b Integer) Integer {
        return a + b
}

B.
type Integer int
func (a Integer) Add(b *Integer) Integer {
        return a + *b
}

C.
type Integer int
func (a *Integer) Add(b Integer) Integer {
        return *a + b
}

D.
type Integer int
func (a *Integer) Add(b *Integer) Integer {
        return *a + *b
}

参考答案及解析

1: 答案及解析: C.知识点: 强类型转化.

2: 答案及解析: BD.

3: 答案: AC. 知识点: 类型断言,方法集.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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