簡體   English   中英

為什么Go中的包級別不允許使用短變量聲明?

[英]Why isn't short variable declaration allowed at package level in Go?

這是允許的:

package main

var a = 3

...

但這不是:

package main

a := 3

...

為什么不? 為什么函數外部的短變量聲明不能在沒有類型的情況下處理常規聲明? 只是為了簡化解析?

公開宣布后不久,Ian Lance Taylor在這個帖子中說

在頂層,每個聲明都以關鍵字開頭。 這簡化了解析。

引用Go Go編程語言規范

簡短變量聲明可能僅出現在函數內部。 在某些上下文中,例如“if”,“for”或“switch”語句的初始化程序,它們可用於聲明本地臨時變量。

您可以將var語句consttypefunc ,在包級別中,您必須指定要聲明的語句類型。

好吧,這不是一個真正的簡寫, a, b := 12無法編譯, var a,b = 12 do。

在函數外部,每個語句必須以關鍵字(var,func等)開頭,因此:=構造不可用。

看到這里 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM