Heim > Artikel > Backend-Entwicklung > Wie kann ich mithilfe einer Schnittstelle sowohl Zeichenfolgen als auch Ganzzahlen in einer Go-Struktur speichern?
Kombinieren von String- und Ganzzahlwerten in einer Go-Struktur: Verwenden einer Schnittstelle
In Go kann es vorkommen, dass Sie eine Datenstruktur benötigen um sowohl Zeichenfolgen- als auch Ganzzahlwerte zu speichern. Betrachten Sie die folgende Strukturdefinition:
type testCase struct { input string isValid bool }
Je nach Anwendungsfall kann es für Sie jedoch praktisch sein, Eingaben entweder als Zeichenfolgen oder als Ganzzahlen zu verarbeiten. Um dies zu erreichen, können Sie eine Schnittstelle verwenden, wie unten gezeigt:
type Input interface { String() string }
Schnittstellenimplementierung für String- und Integer-Typen
Sie können die Eingabeschnittstelle für beide implementieren Zeichenfolgen und Ganzzahlen:
type StringInput string func (s StringInput) String() string { return string(s) } type IntegerInput int func (i IntegerInput) String() string { return strconv.Itoa(int(i)) }
Verwenden der Eingabeschnittstelle in Ihrem Struktur
Jetzt können Sie Ihre testCase-Struktur ändern, um die Eingabeschnittstelle zu verwenden:
type testCase struct { input Input isValid bool }
Beispielcode
Hier ist ein Beispiel wie Sie diese Schnittstelle zum Speichern und Abrufen von Zeichenfolgen- und Ganzzahlwerten verwenden können:
package main import ( "fmt" "strconv" ) type Input interface { String() string } type StringInput string func (s StringInput) String() string { return string(s) } type IntegerInput int func (i IntegerInput) String() string { return strconv.Itoa(int(i)) } type testCase struct { input Input isValid bool } func main() { // Create a test case with a string input testString := testCase{ input: StringInput("Hello, world!"), isValid: true, } // Print the input as a string fmt.Println(testString.input.String()) // Output: Hello, world! // Create a test case with an integer input testInt := testCase{ input: IntegerInput(123), isValid: true, } // Print the input as a string fmt.Println(testInt.input.String()) // Output: 123 }
Durch Nutzung Mit der Eingabeschnittstelle können Sie sowohl Zeichenfolgen- als auch Ganzzahlwerte nahtlos in Ihrer Go-Struktur verarbeiten, was für mehr Flexibilität und Wiederverwendbarkeit des Codes sorgt.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Schnittstelle sowohl Zeichenfolgen als auch Ganzzahlen in einer Go-Struktur speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!