」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 Golang 中的自訂標誌將多個值解析為清單?

如何使用 Golang 中的自訂標誌將多個值解析為清單?

發佈於2024-12-22
瀏覽:547

How can I parse multiple values into a list using custom flags in Golang?

Golang 中列表的自訂標誌

Golang 的標誌包允許簡單的參數解析,但它通常支援基本類型,如字元串、整數、或布林值。在使用值列表時,這似乎是有限制的。

Golang 允許透過實作 flag.Value 介面來建立自訂標誌。此介面需要實作兩個方法:String() 和 Set()。透過為清單定義自訂標誌,您可以解析透過命令列標誌傳遞的多個值。

定義自訂清單標誌

考慮以下範例:

package main

import "flag"
import "fmt"

type arrayFlags []string

// String() implements the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set() implements the flag.Value interface
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
    fmt.Println(myFlags)
}

這定義了一個名為 arrayFlags 的自訂標誌類型,它接受多個值。此標誌綁定到「list1」標誌名稱,可以使用 flag.Parse() 進行解析。

用法

若要使用此自訂標誌傳遞多個值,您可以如下執行程式:

go run your_file.go --list1 value1 --list1 value2 --list1 value3

這將使用提供的三個值填入myFlags變數:[“value1”、“value2”、“value3”]。然後,您可以在程式中存取這些值。

Playground

相關實例,您可以訪問以下 Playground:[playground 連結]

最新教學 更多>
  • 為什麼我的 CONCAT 函數回傳「參數數量無效」錯誤?
    為什麼我的 CONCAT 函數回傳「參數數量無效」錯誤?
    Concat 函數錯誤:參數數量無效在嘗試連接兩列(姓名和職業)中的資料時,您的查詢遇到將附加資訊(括號和Occupation 的首字母)插入CONCAT 函數時發生錯誤。此錯誤是由於傳遞給函數的參數數量無效而引起的。 要修正此問題,您應該使用 CONCAT 函數的正確語法,該函數只接受兩個參數。以...
    程式設計 發佈於2024-12-22
  • 如何將 Python 3 設定為 Mac、Linux 或 Windows 上的預設版本?
    如何將 Python 3 設定為 Mac、Linux 或 Windows 上的預設版本?
    更改預設Python 版本更改預設Python 版本問題:儘管Python 2.6.1 仍處於活動活動狀態在Mac 上安裝Python 3.2,導致在輸入python -V 時出現混亂終端。 解決方案:無論何種作業系統(Mac、Linux或Windows),都可以呼叫python3而不影響Pytho...
    程式設計 發佈於2024-12-22
  • 能否使用 C++ 中的 Constexpr 函數初始化靜態 Constexpr 成員?
    能否使用 C++ 中的 Constexpr 函數初始化靜態 Constexpr 成員?
    Constexpr 使用靜態函數初始化靜態成員Constexpr 使用靜態函數初始化靜態成員原始問題:在C 中,是否可以從constexpr 函數計算constexpr 值(編譯時常數)並將其儲存為 a的靜態成員class?第一次嘗試和編譯器的回應:第一次嘗試在類別中定義靜態constexpr 函數...
    程式設計 發佈於2024-12-22
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-22
  • 如何識別並刪除與已刪除的 Kubernetes Engine 叢集關聯的持久磁碟?
    如何識別並刪除與已刪除的 Kubernetes Engine 叢集關聯的持久磁碟?
    清理與已刪除叢集關聯的持久磁碟刪除 Kubernetes Engine 叢集時,與叢集關聯的持久磁碟預設保持不變。為了解決這個問題,您可以利用 Cloud SDK 來識別和刪除這些磁碟。 識別永久磁碟Cloud SDK 提供了一個通用的命令列介面來與Google雲端資源。使用具有適當篩選器和格式選項...
    程式設計 發佈於2024-12-22
  • 如何將資料插入具有外鍵約束的MySQL表中?
    如何將資料插入具有外鍵約束的MySQL表中?
    在MySQL中向有外鍵約束的表中插入資料涉及外鍵關係的表在插入資料時需要特別考慮,以保證資料的完整性。讓我們探討如何在MySQL 中處理兩種情況下的插入:案例1:插入已有教師的學生如果您有要插入的學生記錄及其所屬教師已經存在,您可以使用子查詢根據教師姓名檢索外鍵(id_teacher):INSERT...
    程式設計 發佈於2024-12-22
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-22
  • 使用 PHP、CSS 和 JavaScript 為初學者建立一個簡單的即時 SBOBET 風格網站
    使用 PHP、CSS 和 JavaScript 為初學者建立一個簡單的即時 SBOBET 風格網站
    如果您曾對 SBOBET88 這樣的即時體育博彩網站著迷,並想自己創建一個網站,那麼您來對地方了!在本指南中,我將引導您完成用 PHP 建立體育博彩介面的過程,並提供比賽賠率和比分的即時更新。 我們將介紹: 設定您的開發環境 創建前端結構 透過API取得即時運動數據 使用 PHP 和 JavaSc...
    程式設計 發佈於2024-12-22
  • 如何根據背景顏色反轉 CSS 字體顏色?
    如何根據背景顏色反轉 CSS 字體顏色?
    根據背景顏色反轉CSS 字體顏色在CSS 中,沒有直接屬性允許您根據背景顏色反轉字體顏色背景顏色。但是,您可以利用多種技術來實現此效果。 使用偽元素偽元素可用於在文字周圍創建包裝,這然後你就可以獨立設計風格了。例如:.inverted-bar { position: relative; } ...
    程式設計 發佈於2024-12-22
  • “第 i 天 GSAP:帶有旋轉箭頭的互動式滾動動畫”
    “第 i 天 GSAP:帶有旋轉箭頭的互動式滾動動畫”
    介紹 ? 開發者您好! 歡迎來到我的 GSAP 之旅的第 7 天,在這裡我探索網路動畫的無限可能性。今天,我接受了創建互動式基於滾動的選取框動畫的挑戰,該動畫具有動態文字和旋轉箭頭。 借助 GSAP 強大的動畫工具,我們將使頁面響應用戶滾動方向(向上或向下),並實現無縫移動和...
    程式設計 發佈於2024-12-22
  • 如何計算 Google 地圖 V3 中兩個標記之間的距離?
    如何計算 Google 地圖 V3 中兩個標記之間的距離?
    如何計算Google 地圖V3 中標記之間的距離計算地圖上兩點之間的距離是一項常見任務, Google Maps V3 提供了一個全面的API 來執行此操作。最直接的方法之一是使用半正弦公式,該公式考慮地球曲率來計算兩個地理座標之間的距離。 半正弦公式The半正弦公式可以在 JavaScript 中...
    程式設計 發佈於2024-12-22
  • 我們如何在數位環境中有效實作髒話過濾器?
    我們如何在數位環境中有效實作髒話過濾器?
    實施有效的髒話過濾器簡介:在許多數位環境中,有必要過濾掉攻擊性或不良內容來自使用者輸入的語言。本文討論如何實現強大的髒話過濾器。 淫穢過濾器:一個微妙的問題:承認髒話過濾器的複雜性非常重要。雖然它們在某些情況下很有用,但它們經常面臨限制並可能產生意想不到的後果。最終,人工審核仍然是準確內容審核的最可...
    程式設計 發佈於2024-12-22
  • 如何最佳化具有多個子句的資料庫 LIKE 查詢的索引選擇?
    如何最佳化具有多個子句的資料庫 LIKE 查詢的索引選擇?
    優化LIKE 查詢的索引選擇當涉及LIKE 子句時,資料庫效能會受到顯著影響,因為傳統索引無法有效支援通配符搜尋。這在具有多個子句和運算子的查詢中尤其明顯。 在提供的查詢中,您有一個包含 LIKE、OR 和 NOT IN 條件的複雜表達式。要確定最佳索引,請考慮以下因素:LIKE 運算子如果搜尋模式...
    程式設計 發佈於2024-12-22
  • 外部 CSS 可以包含在特定的 div 元素中嗎?
    外部 CSS 可以包含在特定的 div 元素中嗎?
    外部 CSS 可以限制為特定元素嗎? 追求創建一個模仿 iPhone 行為和外觀的行動模擬器僅使用客戶端程式碼,開發人員面臨挑戰。用於應用程式的外部 CSS 檔案覆蓋了模擬器本身的 CSS 樣式。 那麼,是否可以將外部 CSS 檔案的效果限制在特定 內的元素? 作用域樣式根據 CSS-Trick...
    程式設計 發佈於2024-12-22
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3