Go:檢查切片中的每個項目是否符合條件
php小編子墨為您介紹一個非常實用的Go語言技巧:檢查切片中的每個項目是否符合條件。 Go語言的切片是一種靈活且功能強大的資料結構,但在實際應用中,我們常常需要對切片中的元素進行條件判斷。本文將詳細介紹如何使用Go語言的range和if語句來檢查切片中的每個項目是否符合我們所設定的條件。透過掌握這個技巧,您將能夠更有效率地處理切片數據,提高程式碼的可讀性和可維護性。
問題內容
檢查切片中的每個項目是否滿足某些條件的最優雅的方法是什麼?在我的特定場景中,我有一個位元組:[16]byte。我需要檢查所有位元組是否都是 0。
例如,在 js 中,我會做類似的事情:
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
在 go 中執行此操作最乾淨、最直接的方法是什麼?
解決方法
為了可讀性和靈活性(例如,如果您需要對byte
以外的類型進行操作),您可能會受益於寫一個小的all
通用函數
- 接受一個切片和該切片的元素類型的謂詞,並且
- 當且僅當切片的所有元素都滿足謂詞時,才傳回
true
。
然後您就可以自由地將通用函數與不同的切片和謂詞一起使用。
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 }
(遊樂場)
不過,無需為 all
函數建立函式庫;一點複製勝過一點依賴。
以上是Go:檢查切片中的每個項目是否符合條件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...
