使用 docopt 解析命令列參數時,結果是類型為 map[string]interface{ 的對應}。但是,當嘗試連接此映射中的值時,可能會由於類型不匹配而發生錯誤。這是因為地圖的值的類型為interface{},可以是任何內容。要解決此問題,需要類型斷言。
要將 interface{} 值轉換為字串,請使用 .(string) 運算子。該運算符斷言該值可以轉換為字串。例如:
host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)
在此範例中,「host」和「port」的值是從參數對應中取得的,然後使用 .(string) 運算子將其轉換為字串。
最新版本的 docopt 提供了具有型別轉換方法的 Opts 物件。這些方法可以如下使用:
host, err := arguments.String("<host>") port, err := arguments.String("<port>") host_port := host + ":" + port
String() 方法將值轉換為字串,簡化型別轉換過程。
以上是使用 docopt 時如何在 Go 中安全地將 `interface{}` 轉換為 `string`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!