Go面试题22

Posted by     "" on Thursday, December 26, 2019

Go面试题22

1: 下面的代码有几处语法问题,各个是什么?

package main
import (
    "fmt"
)
func main() {
    var x string = nil
    if x == nil {
        x = "default"
    }
    fmt.Println(x)
}

2: return之后的defer 语句会执行吗, 下面这段代码输出什么?

var a bool = true
func main() {
    defer func() {
        fmt.Println("1")
    }()
    if a == true {
        fmt.Println("2")
        return
    }
    defer func() {
        fmt.Println("3")
    }()
}

参考答案及解析

1: 答案及解析: 两个地方有语法问题.golang 的字符串类型是不能赋值nil的,也不能跟nil比较.

2: 答案及解析: 2 1. defer关键字后面的函数或者方法想要执行必须先注册, return之后的defer是不能注册的,也就不能执行后面的函数方法.

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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