मैंने देखा assertकि स्विफ्ट में लिखते समय कि पहला मान टाइप किया गया है
@autoclosure() -> Bool
के Tमाध्यम से अस्तित्व का परीक्षण करने के लिए एक सामान्य मूल्य वापस करने के लिए एक अतिभारित विधि के साथ LogicValue protocol।
हालांकि हाथ पर सवाल करने के लिए सख्ती से चिपका। यह एक चाहते प्रतीत होता है @autoclosureकि एक रिटर्न Bool।
एक वास्तविक क्लोजर लिखना जो कोई पैरामीटर नहीं लेता है और एक बूल लौटाता है, काम नहीं करता है, यह चाहता है कि मैं इसे संकलित करने के लिए क्लोजर को कॉल करूं, जैसे:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
हालाँकि बस एक बूल काम करता है:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
तो क्या चल रहा है? क्या है @autoclosure?
संपादित करें: @auto_closure नाम बदल दिया गया था@autoclosure
f({2 >1}())