为了账号安全,请及时绑定邮箱和手机立即绑定

新来的,父母解释

新来的,父母解释

Go
慕娘9325324 2021-08-30 15:19:48
    我是新手,遇到了一组我不明白的括号。在下面的代码中,我使用了一个基本的 defer 语句来打印恐慌的输出。为了使代码正常工作,我必须在关闭花括号的函数结束后添加一个打开和关闭括号。显然我没有正确理解一些东西。我认为它上面的两行是函数的主体是错误的吗?如果它们是函数的主体,那么它之后的括号有什么作用。如果他们不是身体,那么有人可以解释这里发生了什么吗?我在没有括号的情况下得到的错误是:# command-line-arguments./goTemplate.go:14: syntax error: argument to go/defer must be function call.package mainimport "fmt"func main(){    defer func() {        str := recover()        fmt.Println(str)    }()    fmt.Println("Hello, World")    panic("PANIC")}
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

延迟规范

表达式必须是函数或方法调用;

在您的情况下,它是一个函数调用:()调用函数)。
如果没有(),它将是一个函数


查看完整回答
反对 回复 2021-08-30
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信