ฉันสังเกตเห็นเมื่อเขียนassertใน Swift ว่าค่าแรกพิมพ์เป็น
@autoclosure() -> Bool
มีวิธีการมากเกินไปที่จะกลับทั่วไปค่าต่อการดำรงอยู่การทดสอบผ่านทางTLogicValue protocol
อย่างไรก็ตามการเกาะติดกับคำถามในมืออย่างเคร่งครัด แต่ดูเหมือนว่ามันต้องการที่ส่งกลับ@autoclosureBool
การเขียนการปิดจริงที่ไม่มีพารามิเตอร์และส่งคืน Bool ไม่ทำงานฉันต้องการเรียกการปิดเพื่อให้คอมไพล์เช่น:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
อย่างไรก็ตามเพียงผ่าน Bool ทำงาน:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
แล้วเกิดอะไรขึ้น คือ@autoclosureอะไร
แก้ไข: @auto_closureถูกเปลี่ยนชื่อ@autoclosure
f({2 >1}())