【发布时间】:2019-07-06 20:18:32
【问题描述】:
这听起来很简单,但是我如何在 Swift 中合并两个不同类型的数组(Simpson 和 Movie),然后继续按其唯一的公共属性(在本例中为“名称”)按字母顺序排列该对象数组?
struct Simpson {
var age: Int
var name: String
init(age: Int, name: String) {
self.age = age
self.name = name
}
}
let homer = Simpson(age: 39, name: "Homer")
let marge = Simpson(age: 36, name: "Marge")
var simpson = [homer, marge] // [{age 39, name "Homer"}, {age 36, name "Marge"}]
struct Movie {
var location: String
var name: String
init(location: String, name: String) {
self.location = location
self.name = name
}
}
let jaws = Movie(location: "Amity", name: "Jaws")
let et = Movie(location: "LA", name: "E.T")
var movies: [Movie] = [jaws, et] // [{location "Amity", name "Jaws"}, {location "LA", name "E.T"}]
【问题讨论】:
-
顺便说一下,@Sh_Khan 给出的答案(在我看来)比链接问题中接受的答案更好、更迅速
-
@Sam,当然,但链接问题中票数最高的答案涵盖了它。
-
@vacawama 是的,但这不是最好的解决方案(同样,imo)
-
@Sam,Sh_Khan 的答案与 CodeDifferent 的有何不同?它们都使用协议来联合类型,将公共属性添加到该协议,创建该协议类型的数组,并根据公共属性对该数组进行排序。
-
@vacawama 是的,不是的。但这不是转到另一个问题所看到的答案。
标签: arrays swift higher-order-functions