簡體   English   中英

在新包中使用標志值

[英]Use flag value in new package

我在 Golang 上寫。 我創建標志並在主包中使用它。 但現在我想在新包中使用它。 我怎樣才能做到這一點? myFlag = flagSet.Int("MyFlag", 0, "Test") - 這是我在 Main 包中寫的。 我想從控制台更改新包中的變量。 但我不知道在新包中寫了什么來使用這個標志。

作為直接答案 - 您可以為標志值使用導出的全局變量。 這些可以從其他包中使用。

例如:

var Verbose = flag.Bool("v", false, "show verbose progress message")

如果這是在包foo全局定義的,那么foo.Verbose可以從其他導入foo包中使用。


從風格上講,應該謹慎使用導出的全局變量,從主包中導出一個全局變量以在另一個包中使用是一種特殊的代碼味道。 您使包的行為依賴於其他地方的全局狀態,使其變得脆弱且難以測試。 如果您的包具有某種配置struct並在從 main 使用時填充它會更好,可能使用 main 的標志。

暫無
暫無

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

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