Go 規范將標識符定義為導出的基本原理是什么如果兩者:標識符名稱的第一個字符是 Unicode 大寫字母(Unicode 類“Lu”);和標識符在包塊中聲明,或者它是字段名或方法名。"第 1 項對我來說很清楚。但是第 2 項的預期含義是什么。 ?據我了解,每個標識符都必須在包塊中聲明,因為 Go 不提供其他地方來聲明標識符。我也不明白為什么這句話似乎區分標識符和字段名和方法名。字段名稱和方法名稱不是標識符的示例嗎?換個方式問:我是否錯誤地認為:除了在包塊中聲明外,沒有其他方法可以存在標識符(請注意,包塊包含所有包代碼)字段名和方法名是標識符標識符只能在包塊中聲明沒有在包塊之外聲明標識符
2 回答

開心每一天1111
TA貢獻1836條經驗 獲得超13個贊
1. 除了在包塊中聲明之外,沒有其他方法可以使標識符存在
確實如此。您缺少的一件事是標識符的范圍:
在函數內聲明的常量或變量標識符的范圍從 ConstSpec 或 VarSpec(短變量聲明的 ShortVarDecl)的末尾開始,到最里面的包含塊的末尾結束
這意味著在功能塊內聲明的標識符在此功能之外將不可用。
2.字段名和方法名是標識符
真的。正如您在規范中看到的,MethodName
只是 的別名identifier
,與字段名稱相同。
3. 標識符只能在包塊中聲明
我相信這是通過回答第一個問題來解決的。
4. 不能在包塊外聲明標識符
在Universe 塊中聲明了預先聲明的標識符。但是您不能在代碼中的包塊之外聲明標識符。
- 2 回答
- 0 關注
- 184 瀏覽
添加回答
舉報
0/150
提交
取消