الفرق بين == و === في Swift
مرحبًا بالجميع! من فضلكم، أخبروني ما الفرق الجوهري بين عاملي المقارنة == و === في Swift؟ أفهم أن كليهما يُستخدمان للمقارنة، ولكن عندما أحاول مقارنة مثيلين من كلاس، تكون النتيجة مختلفة عن المتوقع.
إليكم مثال كود يربكني:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
let person1 = Person(name: "Alice")
let person2 = Person(name: "Alice")
print(person1 == person2) // خطأ في الترجمة: لا يمكن تطبيق العامل الثنائي '==' على معاملين من نوع 'Person'
print(person1 === person2) // false
let person3 = person1
print(person1 === person3) // trueكنت أتوقع أن person1 == person2 سيعيد true لأن لديهما نفس الاسم، لكنني حصلت على خطأ في الترجمة. بينما === يعمل لكنه يعيد false رغم أن الكائنات تبدو متطابقة. لقد جربت بالفعل:
- إضافة