gpt4 book ai didi

go - 申报后无法进口

转载 作者:数据小太阳 更新时间:2023-10-29 03:38:12 26 4
gpt4 key购买 nike

我正在尝试在 Go 中的声明之后导入一些模块。

例如,我尝试在声明变量后导入时间,但这不起作用,有人可以告诉我为什么在 Go 中会发生这种情况吗?

这个有效:

package main

import (
"fmt"
)
import "time";

var test = "testing"

func main() {
currtime := time.Now()

fmt.Println(test)
fmt.Println(currtime)//Output: 16:44:53

但事实并非如此:

package main

import (
"fmt"
)

var test = "testing"
import "time"

func main() {
currtime := time.Now()

fmt.Println(test)
fmt.Println(currtime)//Output: 16:44:53

}

错误是“函数体之外的非声明语句”。为什么在 Go 中会发生这种情况?

最佳答案

The error is "non-declaration statement outside function body". Why does that happen in Go?

因为这就是 Go 定义的工作方式。来自 the spec :

Each source file consists of a package clause defining the package to which it belongs, followed by a possibly empty set of import declarations that declare packages whose contents it wishes to use, followed by a possibly empty set of declarations of functions, types, variables, and constants.

这意味着 import 语句唯一有效位置是在 package 子句和函数、类型、变量和常量声明之间。

在你的例子中,你有一个变量声明,所以 Go 编译器知道不会再有 import 语句。然后它会看到您的错误导入语句,发现它是一个非声明,并正确生成您观察到的错误。

关于go - 申报后无法进口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53279199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com