max{max=v}elseifv"/> max{max=v}elseifv">

Heim  >  Artikel  >  Backend-Entwicklung  >  Ungültige Operation: v > max (Typparameter T und > sind nicht vergleichbar)

Ungültige Operation: v > max (Typparameter T und > sind nicht vergleichbar)

WBOY
WBOYnach vorne
2024-02-14 19:54:09598Durchsuche

无效操作:v > max (Typparameter T und > sind nicht vergleichbar)“></p><p>php-Editor Apple ist hier, um eine häufige Fehlermeldung für Sie zu analysieren: „Ungültiger Vorgang: v > max (Typparameter T und > sind nicht vergleichbar)“. Dieser Fehler kann beim Programmieren in der PHP-Sprache auftreten, insbesondere beim Vergleichen von Typparametern. In diesem Artikel wird die Ursache dieses Fehlers und die richtige Behandlung erläutert, damit die Leser diesen ungültigen Vorgang besser verstehen und beheben können Der Schlüssel zur Lösung dieses Problems besteht darin, sicherzustellen, dass die verglichenen Typen vergleichbar sind. Im Folgenden werden wir die spezifische Lösung Schritt für Schritt vorstellen.
</p>Ich helfe Ihnen gerne bei der Lösung Ihres Problems mit der Funktion „findminmax“. Eine Fehlermeldung mit der Meldung v > max oder v f9e0f1027aa260e8a2c7454066cfa7b4</code></p>. <p>
<a href=Kompilieren Sie mit Ihrem Code: golang.org/x/exp/ 中定义constraints 包,请参阅 constraints.ordered

package main

import (
    "fmt"
)

func findMinMax[T comparable](arr []T) (min, max T) {
    for _, v := range arr {
        if v > max {
            max = v
        } else if v < min {
            min = v
        }
    }
    return min, max
}

func main() {
    arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    fmt.Println(findMinMax(arr))
}
Probieren Sie es auf dem

Go-Spielplatz

aus.

Es liefert falsche Ergebnisse, weil Sie mit einem Nullwert beginnen bleibt der Nullwert.

Eine einfache Lösung besteht darin, mit dem ersten Wert zu initialisieren, wenn das übergebene Slice nicht leer ist

: minmax ,并且如果传递的切片中的所有值都大于或小于零值,则 minmax

import (
    "fmt"

    "golang.org/x/exp/constraints"
)

func findminmax[t constraints.ordered](arr []t) (min, max t) {
    for _, v := range arr {
        if v > max {
            max = v
        } else if v < min {
            min = v
        }
    }
    return min, max
}

Dies wird ausgegeben (versuchen Sie es auf

Go Playgroundminmax):

func findminmax[t constraints.ordered](arr []t) (min, max t) {
    if len(arr) > 0 {
        min, max = arr[0], arr[0]
    }

    for _, v := range arr {
        if v > max {
            max = v
        } else if v < min {
            min = v
        }
    }
    return min, max
}

Beachten Sie, dass Sie bei Verwendung von Gleitkommatypen -Werte explizit behandeln müssen, da deren Reihenfolge bei anderen Gleitkommazahlen nicht angegeben ist.

Das obige ist der detaillierte Inhalt vonUngültige Operation: v > max (Typparameter T und > sind nicht vergleichbar). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen