数组包含方法不能与自定义模型和谓词一起正常工作
Array contains method is not working properly with custom models and predicate
嗨,我最近遇到了一个奇怪的问题,我的 development.native 包含不起作用 properly.Below 是我的代码。
struct Hello {
var name : String = ""
var address: String = ""
var phone : String = ""
init(name: String,address: String,phone: String) {
self.name = name
self.address = address
self.phone = phone
}
}
struct Buddy {
var phone : String = ""
var name: String = ""
var address: String = ""
init(name: String,address: String,phone: String) {
self.name = name
self.address = address
self.phone = phone
}
}
var a: [Hello] = []
a.append(Hello(name: "Gaurav", address: "Address1", phone: "123456"))
a.append(Hello(name: "Kumar", address: "Address2", phone: "123457"))
a.append(Hello(name: "Singh", address: "Address3", phone: "123"))
var b: Buddy = Buddy(name: "Pawan", address: "Address1", phone: "123")
if (a.contains(where: { [=10=].phone != b.phone})) {
print("doest not contain")
} else {
print(" contain")
}
实际结果:
打印("doest not contain")
预期结果:
打印("contain")
代码正确。
您正在查看
Does a
contain a Hello
whose phone number is not 123.
这是true
,因为甚至有两个 phone 编号不同的项目
将最后一部分改为:
if (a.contains(where: { [=10=].phone == b.phone})) {
print("contains")
} else {
print("does not contain")
}
它会return正确的值。
嗨,我最近遇到了一个奇怪的问题,我的 development.native 包含不起作用 properly.Below 是我的代码。
struct Hello {
var name : String = ""
var address: String = ""
var phone : String = ""
init(name: String,address: String,phone: String) {
self.name = name
self.address = address
self.phone = phone
}
}
struct Buddy {
var phone : String = ""
var name: String = ""
var address: String = ""
init(name: String,address: String,phone: String) {
self.name = name
self.address = address
self.phone = phone
}
}
var a: [Hello] = []
a.append(Hello(name: "Gaurav", address: "Address1", phone: "123456"))
a.append(Hello(name: "Kumar", address: "Address2", phone: "123457"))
a.append(Hello(name: "Singh", address: "Address3", phone: "123"))
var b: Buddy = Buddy(name: "Pawan", address: "Address1", phone: "123")
if (a.contains(where: { [=10=].phone != b.phone})) {
print("doest not contain")
} else {
print(" contain")
}
实际结果: 打印("doest not contain")
预期结果: 打印("contain")
代码正确。
您正在查看
Does
a
contain aHello
whose phone number is not 123.
这是true
,因为甚至有两个 phone 编号不同的项目
将最后一部分改为:
if (a.contains(where: { [=10=].phone == b.phone})) {
print("contains")
} else {
print("does not contain")
}
它会return正确的值。