gpt4 book ai didi

swift - 遍历字典并创建对象实例

转载 作者:行者123 更新时间:2023-11-28 15:07:49 24 4
gpt4 key购买 nike

考虑这本字典:

var studentList = [ "Paul": 5, "Mike": 7, "Ralph": 9, "Graham": 11, "Steve": 12, "Joe": 14, "Truman": 15, "Rick": 16, "Thomas": 17]

和下面的对象:

class Student {
var name: String
var note: Int

init(name: String, note: Int) {
self.name = name
self.note = note
}
}

我想遍历 studentList 以创建 Student() 的实例,其属性名称和注释由字典的键和值实现,以获得此结果:

student1(name: Paul, note: 5)
student2(name: Mike, note: 9)
....

我应该如何修改我的 Student 对象以及我应该使用什么样的函数(我试过使用 map{} )来创建我的 Student 实例?

最佳答案

如果您不是从 NSObject 继承,您应该考虑使用结构而不是类。请注意,当使用结构时,它已经提供了一个默认的初始化器,如果它与您的 map 元素 (String, Int) 匹配,您可以将初始化器方法传递给 map 方法,无需使用闭包:

struct Student {
let name: String
let note: Int
}

let students = studentList.map(Student.init)

如果您想自定义结构的打印方式,您可以按照@user28434 的建议使其符合 CustomStringConvertible 并实现描述属性:

extension Student: CustomStringConvertible {
var description: String {
return "Name: \(name) - Note: \(note)"
}
}

print(students) // "[Name: Graham - Note: 11, Name: Rick - Note: 16, Name: Steve - Note: 12, Name: Paul - Note: 5, Name: Thomas - Note: 17, Name: Ralph - Note: 9, Name: Joe - Note: 14, Name: Truman - Note: 15, Name: Mike - Note: 7]\n"

关于swift - 遍历字典并创建对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227850/

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