亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在不同的文件范圍內重用常量名稱?

是否可以在不同的文件范圍內重用常量名稱?

Go
茅侃侃 2023-03-21 15:20:06
是否可以在不同的文件中有兩個同名的常量?foo.goconst {    deviceId = 1     // I dont need this outside the file scope}type DeviceA struct {    .. some fields..     // I cannot make constant fields here}.. some methods ...bar.goconst {    deviceId = 2      // I dont need this outside the file scope}type DeviceB struct {    .. some fields ..    // I cannot make constant fields here}.. some methods ...如果我這樣做,我會得到它deviceId已被重新聲明。如何將這些常量保留在文件的范圍內?如果可以解決這個問題,我不介意為常量使用某種命名空間。
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

Go 編程語言規范

套餐

Go 程序是通過將包鏈接在一起構建的。一個包又是由一個或多個源文件構成的,這些源文件一起聲明屬于該包的常量、類型、變量和函數,并且可以在同一包的所有文件中訪問。這些元素可以導出并在另一個包中使用。

源文件組織

每個源文件都包含一個 package 子句,定義它所屬的包,然后是一組可能為空的導入聲明,這些聲明聲明它希望使用其內容的包,然后是一組可能為空的函數、類型、變量聲明,和常量。


屬于包的 [constants] 可以在同一包的所有文件中訪問。

Go 的基本編譯單元是包。包中的源文件被合并以形成編譯器的輸入。


查看完整回答
反對 回復 2023-03-21
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

回答你的問題:不可能有兩個具有相同名稱的常量,在相同的范圍內,在不同的文件中的相同包中。


Go 中沒有命名空間或文件范圍。


但是,在同一個包中可以有兩個同名的常量,但在不同的范圍內聲明:


package main


import (

    "fmt"

)


const a = 1


func main() {

    const a = 2

    fmt.Println(a) // output is 2

}

scope 詳情請見:https://golang.org/ref/spec#Declarations_and_scope


查看完整回答
反對 回復 2023-03-21
  • 2 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號