我有一个关联值的枚举,为了进行测试,我想使其相等,但不知道这种模式如何适用于带有多个参数的枚举实例。
例如,总结如下,我知道使标题相等的语法。对于包含多个不同类型值的选项,这将如何工作?
enum ViewModel {
case heading(String)
case options(id: String, title: String, enabled: Bool)
}
func ==(lhs: ViewModel, rhs: ViewModel) -> Bool {
switch (lhs, rhs) {
case (let .heading(lhsString), let .heading(rhsString)):
return lhsString == rhsString
case options...
default:
return false
}
}
Run Code Online (Sandbox Code Playgroud)
我知道Swift 4.1可以为我们合成Equatable的一致性,但是目前我无法更新到该版本。
var employees = {
"staff": [
{"name": "Bob", "gender": "Male"},
{"name": "Sue", "gender": "Female"},
{"name": "Eric", "gender": "Male"},
{"name": "Jo", "gender": "Female"}
]
}
Run Code Online (Sandbox Code Playgroud)
在遍历这个json结构之后,有没有一种方法可以根据性别选择有选择地删除整行?理想情况下,我想要一个新的对象,但没有任何男性,例如.
我希望不同类型之间的连接在Swift中是直截了当的,但显然不是.这是什么解决方法?
var boy = "Bart Simpson"
var age = 7
print(boy + " is " + age)
Run Code Online (Sandbox Code Playgroud) 我在这里简化了字符串和Bools字典:
var dict: [String : Bool] = ["A": true, "B": false, "C": true]
Run Code Online (Sandbox Code Playgroud)
我想转换到字典如下(即字典键和值都将成为另一个字典中值的数组,但每次都会有"身份证"和"启用"的一个新的字典键:
var array = [["id": "A", "enabled": true], ["id": "B", "enabled": false], ["id": "C", "enabled": true]]
Run Code Online (Sandbox Code Playgroud)
我一直无法找到解决方案.什么是最好的方法?
提前致谢.