【发布时间】:2019-05-29 19:38:54
【问题描述】:
转到 1.12 窗口
在 os.Exit 之后而不是之前放错了 fmt.Println, 这不应该导致编译器失败或至少警告吗?
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Hello, playground")
os.Exit(0)
fmt.Println("Good By, playground")
}
【问题讨论】:
-
它可能会被 linter 捕获,但编译器并不关心语义。您有 3 个函数调用,这是合法的。你不能有一个
return后跟更多代码,但对于编译器来说os.Exit只是另一个函数。 -
@Adrian 实际上在 Go 中,
return之后有代码并不是错误。 -
@icza 对不起,你是对的,我忘了 Playground 在
go run之前运行go vet。
标签: go