3 回答

TA貢獻1869條經驗 獲得超4個贊
錯誤是“函數體之外的非聲明語句”。為什么在 Go 中會發生這種情況?
因為這就是 Go 定義的工作方式。從規格:
每個源文件都包含一個 package 子句,定義它所屬的包,然后是一組可能為空的導入聲明,這些聲明聲明它希望使用其內容的包,然后是一組可能為空的函數、類型、變量聲明,和常量。
這意味著import 語句的唯一有效位置是package
子句與函數、類型、變量和常量的聲明之間。
在你的例子中,你有一個變量聲明,所以 Go 編譯器知道不會再有 import 語句。然后它看到你的錯誤導入語句,看到它是一個非聲明,并正確地生成你觀察到的錯誤。

TA貢獻1809條經驗 獲得超8個贊
在 Go 中通常有兩種導入包的方法:
import "fmt"
import "time"?
或者
import (
? ? "fmt"
? ? "time"
)
訣竅是你不能import在你的第二個例子中混合使用和其他東西。
package main
import (
? ? ? ?"fmt"
)
var test = "testing" //<-- This does not comply with the definition of a Go file
import "time"
func main() {
? ? currtime := time.Now()
? ? fmt.Println(test)?
? ? fmt.Println(currtime)//Output: 16:44:53
}
在這里,您可以找到一份完備的.go 文件剖析文檔。
每個 .go 文件的結構都是相同的。
首先是 package 子句,前面可以有可選的注釋,通常描述包的目的。
然后是零個或多個進口申報。
第三部分包含零個或多個頂級聲明
- 3 回答
- 0 關注
- 150 瀏覽
添加回答
舉報