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

Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Operasi tidak sah: v > maks (parameter jenis T dan > tidak boleh dibandingkan)

Operasi tidak sah: v > maks (parameter jenis T dan > tidak boleh dibandingkan)

WBOY
WBOYke hadapan
2024-02-14 19:54:09640semak imbas

无效操作:v > maks (parameter jenis T dan > tidak boleh dibandingkan)

editor php Apple ada di sini untuk menganalisis mesej ralat biasa untuk anda: "Operasi tidak sah: v > maks (parameter jenis T dan > tidak boleh dibandingkan)". Kami mungkin menghadapi ralat ini semasa pengaturcaraan dalam bahasa PHP, terutamanya apabila membandingkan parameter jenis Artikel ini akan menerangkan secara terperinci punca ralat ini dan cara mengendalikannya dengan betul untuk membantu pembaca memahami dan menyelesaikan operasi tidak sah ini dengan lebih baik membandingkan dua jenis yang tidak dapat dibandingkan. Kunci untuk menyelesaikan masalah ini adalah untuk memastikan bahawa jenis yang dibandingkan adalah setanding Dalam berikut, kami akan memperkenalkan penyelesaian khusus langkah demi langkah

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))
}
.

Saya amat berbesar hati untuk membantu anda menyelesaikan masalah yang anda hadapi dengan fungsi findminmax. Mesej ralat yang menunjukkan v > maks atau v 2c04f89b6e98e2e375b043082a6aa474Kekangan yang dipesan adalah pada

. golang.org/x/exp/ 中定义constraints 包,请参阅 constraints.ordered Kompilkan dengan kod anda:

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
}

Cubalah di

pergi taman permainan

. Ia memberikan hasil yang salah kerana anda bermula dengan nilai sifar

akan kekal nilai sifar.

minmax ,并且如果传递的切片中的所有值都大于或小于零值,则 minmaxPembetulan mudah adalah dengan memulakan dengan nilai pertama jika kepingan yang diluluskan tidak kosong

:

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
}
minmaxIni akan menghasilkan (cuba di

pergi taman permainan

):

1 9
Perhatikan bahawa jika anda menggunakan jenis titik terapung, anda mesti mengendalikan nilai

secara eksplisit, kerana susunannya dengan nombor titik terapung lain tidak dinyatakan.

Atas ialah kandungan terperinci Operasi tidak sah: v > maks (parameter jenis T dan > tidak boleh dibandingkan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam