【发布时间】:2019-09-26 07:25:07
【问题描述】:
您好,我最近在开发过程中遇到了一个奇怪的问题。本机包含无法正常工作。以下是我的代码。
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: { $0.phone != b.phone})) {
print("doest not contain")
} else {
print(" contain")
}
实际结果: print("不包含")
预期结果: 打印(“包含”)
【问题讨论】:
-
请发布代码而不是链接。
-
@vadian 我已经更新了.. 请检查
-
我认为
!a.contains(where: { $0.phone == b.phone})将根据您的if-else声明起作用 -
但
a确实包含电话号码不同的元素。将包含与否定一起使用,!=,总是很麻烦。用简单的英语你的代码说,是否有 any 元素的电话号码不同于 b.phone -
请解释为什么您期望输出“包含”