Im Kontext des Parsens von Befehlszeilenargumenten mit docopt sind die in der resultierenden Karte gespeicherten Werte von der Typ interface{}, der jede Art von Daten darstellen kann. Beim Versuch, Werte aus dieser Karte in eine Zeichenfolge zu verketten, tritt jedoch aufgrund einer Typinkongruenz ein Fehler auf.
Um dieses Problem zu beheben, ist eine Typzusicherung erforderlich, um die Schnittstellen{}-Werte vor der Verkettung in Zeichenfolgen zu konvertieren. Dies ist besonders wichtig, da die Karte vom Typ „map[string]interface{}“ ist, wobei die Werte im Typ variieren können.
Der aktualisierte Code würde wie folgt aussehen:
host := arguments["<host>"].(string) + ":" + arguments["<port>"].(string)
Dies Die Typzusicherung konvertiert die Werte der Schnittstelle{} explizit in Zeichenfolgen und stellt so eine erfolgreiche Verkettung sicher.
Alternativ stellt in der neuesten Version von docopt das zurückgegebene Opts-Objekt bereit praktische Methoden zur Konvertierung:
host, err := arguments.String("<host>") port, err := arguments.String("<port>") host_port := host + ":" + port
Diese Methoden übernehmen die Konvertierung in Strings und geben die konvertierten Werte zurück, wodurch der Code vereinfacht wird und in diesem Fall die Notwendigkeit einer Typzusicherung entfällt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich interface{} sicher in einen String beim Parsen von Docopt-Befehlszeilenargumenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!