Heim > Artikel > Backend-Entwicklung > Wie kann ich Werte verschiedener Typen in Go vergleichen?
Wie heißt die vergleichbare Schnittstelle?
In Go gibt es keine explizite vergleichbare Schnittstelle. Um Werte verschiedener Typen zu vergleichen, können Sie die Less-Funktion verwenden.
So können Sie eine Less-Funktion implementieren:
func Less(a, b interface{}) bool { switch a.(type) { case int: if ai, ok := a.(int); ok { if bi, ok := b.(int); ok { return ai < bi } } case string: if ai, ok := a.(string); ok { if bi, ok := b.(string); ok { return ai < bi } } // ... default: panic("Unknown") } return false }
Sie können die Less-Funktion verwenden, um Werte in einer Verknüpfung zu vergleichen Neue Elemente sortiert auflisten und einfügen:
func Insert(val interface{}, l *list.List) *list.Element { e := l.Front() if e == nil { return l.PushFront(val) } for ; e != nil; e = e.Next() { if Less(val, e.Value) { return l.InsertBefore(val, e) } } return l.PushBack(val) }
Das obige ist der detaillierte Inhalt vonWie kann ich Werte verschiedener Typen in Go vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!