Editor PHP Zimo memperkenalkan anda kepada teknik bahasa Go yang sangat praktikal: semak sama ada setiap item dalam kepingan memenuhi syarat. Potongan bahasa Go ialah struktur data yang fleksibel dan berkuasa, tetapi dalam aplikasi praktikal, kita selalunya perlu melakukan pertimbangan bersyarat pada elemen dalam kepingan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan julat dan jika pernyataan bahasa Go untuk menyemak sama ada setiap item dalam hirisan memenuhi syarat yang kami tetapkan. Dengan menguasai teknik ini, anda akan dapat memproses data yang dihiris dengan lebih cekap dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda.
Apakah cara yang paling elegan untuk menyemak sama ada setiap item dalam kepingan memenuhi syarat tertentu? Dalam senario khusus saya, saya mempunyai kepingan bait: [16]bait. Saya perlu menyemak sama ada semua bait adalah 0.
Sebagai contoh, dalam js, saya akan melakukan sesuatu seperti:
const uint8Array = new Uint8Array([0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])//Can be thought of as an array of "bytes" const isEmpty = uint8Array.every(byte=>byte === 0)//Check that every "byte" is zero console.log(isEmpty)//false
Apakah cara paling bersih dan paling mudah untuk melakukan ini secara berterusan?
Untuk kebolehbacaan dan fleksibiliti (cth. jika anda perlu menggunakan byte
以外的类型进行操作),您可能会受益于编写一个小的 all
fungsi generik
true
jika dan hanya jika semua elemen hirisan memenuhi predikat. Anda kemudian bebas menggunakan fungsi generik dengan kepingan dan predikat yang berbeza.
package main import "fmt" func main() { bs := []byte{15: 1} // slice of 16 bytes, all but the last one of which are zero isZero := func(b byte) bool { return b == 0 } fmt.Println(All(bs, isZero)) // false } func All[T any](ts []T, pred func(T) bool) bool { for _, t := range ts { if !pred(t) { return false } } return true }
Tidak perlu membuat perpustakaan untuk all
fungsi, walaupun Sedikit menyalin bernilai sedikit kebergantungan.
Atas ialah kandungan terperinci Pergi: Semak sama ada setiap item dalam kepingan memenuhi syarat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!