Typ-Assertion-Fehler: Schnittstelle in String in Go konvertieren
In Go kann ein Schnittstellenwert Werte verschiedener Typen enthalten. Wenn Sie einen Schnittstellenwert in einen bestimmten Typ konvertieren müssen, verwenden Sie eine Typzusicherung. Dies geschieht mit der Syntax x.(T), wobei x der Schnittstellenwert und T der Zieltyp ist.
Beim Versuch, einen Schnittstellenwert in eine Zeichenfolge umzuwandeln, kann jedoch ein Fehler auftreten:
invalid operation: data + "\n" (mismatched types interface {} and string)
Dieser Fehler tritt auf, wenn der in der Schnittstelle gespeicherte Wert keine Zeichenfolge ist. Um dies zu beheben, müssen wir eine Typzusicherung verwenden, um zu überprüfen, ob der Wert tatsächlich eine Zeichenfolge ist, und die korrekte Typkonvertierung durchführen.
Sie haben in Ihrem Code die folgende Änderung vorgenommen:
data := <-myEventChan s:= data.(string) + "\n"
Diese Typzusicherung prüft, ob der von myEventChan empfangene Wert eine Zeichenfolge ist. Wenn dies der Fall ist, wird er in eine Zeichenfolge umgewandelt und ein Zeilenumbruchzeichen angehängt. Andernfalls kommt es zur Laufzeit zu einer Panik.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein Interface{} sicher in einen String in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!