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

WBOY
Lepaskan: 2024-02-14 19:54:09
ke hadapan
644 orang telah melayarinya
<p><img src="https://img.php.cn/upload/article/000/887/227/170791165242514.jpg" alt="无效操作:v > maks (parameter jenis T dan > tidak boleh dibandingkan)"></p> <p> 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 </p> <h2 class="daan"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">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)) }</pre><div class="contentsignin">Salin selepas log masuk</div></div>. </h2>Saya amat berbesar hati untuk membantu anda menyelesaikan masalah yang anda hadapi dengan fungsi findminmax. Mesej ralat yang menunjukkan v > maks atau v < Untuk memberikan penyelesaian yang tepat, saya perlu melihat pelaksanaan fungsi findminmax. Berdasarkan penerangan anda, jenis t yang sepatutnya boleh dibandingkan nampaknya menyebabkan masalah semasa perbandingan. <p> <p>Saya menjangkakan fungsi findminmax berfungsi dengan baik. </p><p>Penyelesaian</p><h2 class="daan">Anda diperlukan untuk pengendali </h2>. <p> <code>t</code> 类型参数使用了 <a href="https://www.php.cn/link/422e42d058a41c75062760d7d640debf" rel="nofollow noreferrer"><code>comarable</code></a> 约束。 <code>comparable</code> 的意思是:<em>可比较</em>。因此,您可以对该类型的值使用 <code>==</code> 运算符。这并不意味着它们是<em>有序的</em>,这是使用 <code><</code> <code>></code>Kekangan yang dipesan adalah pada </p><p><a href="https://www.php.cn/link/b753ced14094e73576b017d9323be362" rel="nofollow noreferrer">. <code>golang.org/x/exp/ 中定义constraints</code></a> 包,请参阅 <a href="https://www.php.cn/link/b753ced14094e73576b017d9323be362#ordered" rel="nofollow noreferrer"><code>constraints.ordered</code> </a>Kompilkan dengan kod anda: </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">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 }</pre><div class="contentsignin">Salin selepas log masuk</div></div> <p>Cubalah di </p>pergi taman permainan<p>. <a href="https://www.php.cn/link/b18336c06954cf0a92113517ca2bdd29" rel="nofollow noreferrer"> </a>Ia memberikan hasil yang salah kerana anda bermula dengan nilai sifar </p> akan kekal nilai sifar. <p> <code>min</code> 和 <code>max</code> ,并且如果传递的切片中的所有值都大于或小于零值,则 <code>min</code> 或 <code>max</code>Pembetulan mudah adalah dengan memulakan dengan nilai pertama jika kepingan yang diluluskan tidak kosong </p>: <p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">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 }</pre><div class="contentsignin">Salin selepas log masuk</div></div> <code>min</code> 和 <code>max</code>Ini akan menghasilkan (cuba di </p>pergi taman permainan<p>): <a href="https://www.php.cn/link/ed7ec77be8029e30e8532d41448d1c52" rel="nofollow noreferrer"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">1 9</pre><div class="contentsignin">Salin selepas log masuk</div></div> Perhatikan bahawa jika anda menggunakan jenis titik terapung, anda mesti mengendalikan nilai secara eksplisit, kerana susunannya dengan nombor titik terapung lain tidak dinyatakan. </h2> <p></p>

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan