如何在Swift中查詢列表項的索引?
Swift提供了一些方法可以在集合型別上執行操作以獲取特定物件的索引。
要在Swift中查詢陣列中專案的索引,可以使用Array型別的firstIndex(of:)方法。此方法返回陣列中第一個等於給定元素的元素的索引,如果找不到這樣的元素,則返回nil。
如何列印列表項的索引?
讓我們來看一個例子。
演算法
步驟1 - 定義輸入陣列。
步驟2 - 在輸入陣列上呼叫firstIndex()方法。
步驟3 - 使用可選繫結獲取索引。
步驟4 - 如果找到,則列印索引。
示例
import Foundation let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript"] let targetString = "Swift" if let index = languages.firstIndex(of: targetString) { print("Index of \(targetString) is \(index)") } else { print("\(targetString) is not in the list") }
輸出
Index of Swift is 2
還有一些其他情況需要考慮和學習才能獲得索引。
如果陣列中存在重複物件,將返回哪個索引?
在這種情況下,firstIndex()方法將返回列表中第一次出現的索引。例如,
示例
import Foundation let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript", "Swift"] let targetString = "Swift" if let index = languages.firstIndex(of: targetString) { print("Index of \(targetString) is \(index)") } else { print("\(targetString) is not in the list") }
輸出
Index of Swift is 2
如果您需要查詢滿足特定條件的元素的索引
您可以改用index(where:)方法。此方法接受一個返回Bool的閉包,並返回陣列中閉包返回true的第一個元素的索引。例如,
示例
import Foundation let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript"] let targetString = "Py" if let index = languages.firstIndex(where: { $0.starts(with: targetString) }) { print("Index of \(targetString) is \(index)") } else { print("\(targetString) is not in the list") }
輸出
Index of Py is 3
結論
Swift為我們提供了幾種方法來獲取陣列中專案的索引。您可以根據您的需求使用任何方法。
廣告