給定一個可選整數陣列,我計算不為零的值,直到(并包括)給定索引。我把代碼寫在下面。有沒有其他方法可以獲得相同的結果?更 Swift 友好的方式?
這是我的代碼:
func getValuesCount(upTo index: Int, in values: [Int?]) -> Int {
return values[0 ... index].filter { value in return value != nil }.count
}
uj5u.com熱心網友回復:
一種稍微簡化的方法是使用compactMap
而不是顯式檢查nil
. 并且prefix
可以用于獲取前 n 個值,即使傳入的索引大于陣列。return
當有正確型別的單行結果時, 是可選的。
func getValuesCount(upTo index: Int, in values: [Int?]) -> Int {
values.prefix(index).compactMap { $0 }.count
}
使用引數名稱upTo
意味著范圍應該是..<index
而不是...index
。所以使用prefix(index)
類似于使用..<index
。如果你想包括index
那么你可能想要prefix(index 1)
.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/533049.html
標籤:数组迅速