Go面试题41

Posted by     "" on Tuesday, January 7, 2020

Go面试题41

1: 下面代码编译能通过吗?

func main() 
{
    fmt.Println("hello world)
}

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

var x = []int{2: 2, 3, 0: 1}

func main() {
    fmt.Println(x)
}

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

func incr(p *int) int {
    *p++
    return *p
}

func main() {
    v := 1
    incr(&v)
    fmt.Println(v)
}

参考答案及解析

1: 答案及解析: 编译错误 syntax error: unexpected semicolon or newline before {.

Go语言中大括号不能放在单独一行.

2: 答案及解析: [1 0 2 3],字面量初始化切片的时候,可以指定索引,没有指定索引的元素会在前一个索引基础之上加一,所以输出[1 0 2 3],而不是[1,3,2]

3: 答案及解析: 2. 知识点: 指针. p 是指针变量,指向变量v, *p++操作的意思是取出变量v的值并执行加一操作,所以v的最终值是2.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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