Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Werte verschiedener Typen in Go vergleichen?

Wie kann ich Werte verschiedener Typen in Go vergleichen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 01:34:03796Durchsuche

How Can I Compare Values of Different Types in Go?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn