La función de búsqueda de matriz no funciona en Swift
Confieso que me siento un poco estúpido, pero después de horas de intentarlo tengo que preguntar:
class AGE {
static func getAge() -> Int {
var age: Int
for items in dataArray {
if items.name == "Steven" {
age = items.age
}
else {
age = 0
}
}
// variable "age" used before being initialized - WHY?
return age
}
}
Incluso intenté establecervar age: Int = 0
al principio, pero luego la funciónreturn 0
. Espero que alguien pueda perdonarme esta pregunta básica en este momento. Cualquier ayuda apreciada.
Para que quede más claro cómo se ve dataArray:
struct Person {
let name: String
let lastName: String
let age: Int
}
let person1: Person = Person(name: "Steven", lastName: "miller", age: 23)
let person2: Person = Person(name: "jana", lastName: "drexler", age: 31)
let person3: Person = Person(name: "hanna", lastName: "montana", age: 56)
var dataArray = [Person]()
dataArray.append(person1)
dataArray.append(person2)
dataArray.append(person3)
Actualizar
Intentando reunir la esencia de todas las respuestas, la solución debe tener este aspecto: clase EDAD {
static func getAge() ->Int {
var age: Int = 0
for items in dataArray {
while items.firstName == "Steven" {
age = items.age
return age
break // This break will never be executed because of return.
}
break // setting the break here, the loop will break after first round
}
return age
}
}
Este código funciona (con el segundo salto) pero solo para el primer bucle. La pregunta que queda es cómo configurar el retorno y la ruptura después de que el ciclo llegue a su objetivo. Regresar o romper impedirá el otro paso.