在使用docopt 進行命令列參數解析的上下文中,儲存在結果映射中的值是interface{} 類型,可以表示任何類型的資料。但是,當嘗試將此映射中的值連接到字串時,由於類型不匹配,會發生錯誤。
要解決此問題,需要類型斷言以在連接之前將 interface{} 值轉換為字串。這一點尤其重要,因為地圖的類型為map[string]interface{},其中值的類型可能不同。
更新後的程式碼如下:
host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)
This類型斷言明確地將interface{}值轉換為字串,確保成功連接。
或者,在最新版本的docopt中,傳回的Opts物件提供了方便的轉換方法:
host, err := arguments.String("<host>") port, err := arguments.String("<port>") host_port := host + ":" + port
這些方法將處理到字串的轉換並傳回轉換後的值,簡化了程式碼並消除了在這種情況下類型斷言的需要。
以上是如何在 Docopt 命令列參數解析中安全地將 interface{} 轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!