這不起作用:package mainvar formatter string = "fmt"import ( formatter)func main() { fmt.Println(formatter)}我有:syntax error: non-declaration statement outside function body盡管一切都有聲明。
1 回答

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
根據(jù)Go 規(guī)范:
每個(gè)源文件都包含一個(gè)包子句,定義它所屬的包,后跟一組可能為空的導(dǎo)入聲明,聲明其希望使用其內(nèi)容的包,后跟一組可能為空的函數(shù)、類型、變量聲明,和常數(shù)。
SourceFile???????=?PackageClause?";"?{?ImportDecl?";"?}?{?TopLevelDecl?";"?}?.
這意味著,如果存在任何進(jìn)口聲明,則頂級(jí)聲明var formatter string = "fmt"
必須位于任何進(jìn)口聲明之后。從技術(shù)上講,您會(huì)收到此錯(cuò)誤,因?yàn)槁暶鞯亩x不包括導(dǎo)入聲明(盡管有名稱),并且您的源代碼在頂級(jí)聲明之后有一個(gè)導(dǎo)入聲明,而頂級(jí)聲明是不允許的。
此外,導(dǎo)入聲明部分顯示導(dǎo)入路徑必須是字符串文字,因此即使不是排序問題,您仍然無法執(zhí)行您正在嘗試的操作。
- 1 回答
- 0 關(guān)注
- 173 瀏覽
添加回答
舉報(bào)
0/150
提交
取消