Go面试题14

Posted by     "" on Monday, December 23, 2019

Go面试提14

1: 下面选项正确的是?

func main() {
    str := "hello"
    str[0] = 'x'
    fmt.Println(str)
}
  • A: hello
  • B: xello
  • C: compilation error

2: 下面代码输出什么?

package main

import "fmt"

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

func main() {
    p := 1
    incr(&p)
    fmt.Println(p)
}
  • A: 1
  • B: 2
  • C: 3

3: 对add()函数用正确的是()

func add(args ...int) int {
    sum := 0
    for _, arg := range args {
        sum += arg
    }
    return sum
}
  • A: add(1,2)
  • B: add(1,3,7)
  • C: add([]int{1,2})
  • D: add([]int{1,3,7}...)

参考答案及解析

1: 答案及解析: C. 知识点: 常量, Go 语言中的字符串是只读的.
2: 答案及解析: B. 知识点: 指针, incr()函数里的p*int类型的指针,指向的是main()函数的变量p的地址.第2行代码是将该地址的值执行一个自增操作,incr() 返回自增后的结果.

3: 答案及解析: ABD. 知识点: 可变函数.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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