Bei Verwendung von docopt zum Parsen von Befehlszeilenargumenten ist das Ergebnis eine Karte vom Typ „map[string]interface{“ }. Beim Versuch, Werte aus dieser Karte zu verketten, kann jedoch aufgrund einer Typinkongruenz ein Fehler auftreten. Dies liegt daran, dass die Werte der Karte vom Typ interface{} sind, was alles sein kann. Um dieses Problem zu beheben, ist eine Typzusicherung erforderlich.
Um einen Interface{}-Wert in eine Zeichenfolge umzuwandeln, verwenden Sie den Operator .(string). Dieser Operator bestätigt, dass der Wert in eine Zeichenfolge umgewandelt werden kann. Beispiel:
host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)
In diesem Beispiel werden die Werte für „Host“ und „Port“ aus der Argumentzuordnung abgerufen und dann mit dem Operator .(string) in Zeichenfolgen konvertiert.
Neueste Versionen von docopt stellen ein Opts-Objekt mit Methoden zur Typkonvertierung bereit. Diese Methoden können wie folgt verwendet werden:
host, err := arguments.String("<host>") port, err := arguments.String("<port>") host_port := host + ":" + port
Die String()-Methode wandelt den Wert in einen String um und vereinfacht so den Typkonvertierungsprozess.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich „interface{}' sicher in „string' in Go, wenn ich docopt verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!