gpt4 book ai didi

arrays - 在数组中搜索一个值 [swift]

转载 作者:行者123 更新时间:2023-11-28 05:50:45 25 4
gpt4 key购买 nike

刚开始学习 Swift,花了几个小时试图通过在这里搜索来解决这个问题,但到目前为止还没有成功。

我有一个数组,是这样创建的:

class ProbabilitiesClass {
var list = [Odds]()

init() {
list.append(Odds(dateInit: -35, oddsTodayInit: "0,01", sevenDaysInit: "0,2"))
list.append(Odds(dateInit: -34, oddsTodayInit: "0,01", sevenDaysInit: "0,3"))
list.append(Odds(dateInit: -33, oddsTodayInit: "0,02", sevenDaysInit: "0,4"))

我想在这个数组的第一个参数中搜索一个整数并返回它的索引。

试过了

if let i = Odds.firstIndex(where: { $0.hasPrefix(differenceInDays) }) {
print("index is \([i])")
}

返回错误:

Type 'Odds' has no member 'firstIndex'

最终目标是返回该索引的第二个和第三个参数。

更新:我这样定义赔率:

import Foundation

class Odds {
let dateText : Int
let oddsToday : String
let odds7Days : String

init(dateInit: Int, oddsTodayInit: String, sevenDaysInit : String) {
dateText = dateInit
oddsToday = oddsTodayInit
odds7Days = sevenDaysInit
}

}

最佳答案

你可以这样做:

let p = ProbabilitiesClass()
let differenceInDays = -34
if let i = p.list.firstIndex(where: { $0.dateText == differenceInDays }) {
print("index is \([i])") //index is [1]
}

ProbabilitiesClass 实例的 list 属性中查找索引。就像错误消息所说:类 Odds 不是一个数组,无法在其上使用方法 firstIndex(where:)


如果您想使用第一个 dateInit 等于 differenceInDays 的元素的属性,那么您可以这样做:

if let first = p.list.first(where: { $0.dateText == differenceInDays }) {
print("oddsTodayInit =", first.oddsToday)
print("sevenDaysInit =", first.odds7Days)
}

它使用了这个函数first(where:) .

关于arrays - 在数组中搜索一个值 [swift],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53035150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com