This question already has answers here:
Why add “()” after closure body in Golang?
(4个答案)
6年前关闭。
我是新来的,遇到了一些我不理解的paren。
在下面的代码中,我正在使用基本的defer语句来打印紧急情况的输出。
为了使代码正常工作,我必须在关闭花括号的函数结束后添加一个打开和关闭括号。
显然,我不太了解。我以为上面的两行是函数的主体吗?如果它们是函数的主体,那么在服务后,parens有什么作用。如果它们不是 body ,那么有人可以解释这里发生了什么吗?
我没有括号的错误是:
(4个答案)
6年前关闭。
我是新来的,遇到了一些我不理解的paren。
在下面的代码中,我正在使用基本的defer语句来打印紧急情况的输出。
为了使代码正常工作,我必须在关闭花括号的函数结束后添加一个打开和关闭括号。
显然,我不太了解。我以为上面的两行是函数的主体吗?如果它们是函数的主体,那么在服务后,parens有什么作用。如果它们不是 body ,那么有人可以解释这里发生了什么吗?
我没有括号的错误是:
# command-line-arguments./goTemplate.go:14: syntax error: argument to go/defer must be function call
。package main
import "fmt"
func main(){
defer func() {
str := recover()
fmt.Println(str)
}()
fmt.Println("Hello, World")
panic("PANIC")
}
最佳答案
从Defer spec:
在您的情况下,这是一个函数调用:()
调用该函数)。
没有()
,它将是一个函数值。
您可以在“Why add “ ()
” after closure body in Golang?”中看到更多信息。
关于go - 新增功能,括号中的解释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26951568/
10-16 16:44