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
.
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
