Saya perhatikan ketika menulis assert
di Swift bahwa nilai pertama diketikkan sebagai
@autoclosure() -> Bool
dengan metode kelebihan beban untuk mengembalikan T
nilai generik , untuk menguji keberadaan melalui LogicValue
protocol
.
Namun berpegang erat pada pertanyaan yang ada. Tampaknya ingin @autoclosure
yang mengembalikan a Bool
.
Menulis penutupan yang sebenarnya tanpa parameter dan mengembalikan Bool tidak berfungsi, ia ingin saya memanggil penutupan untuk membuatnya dikompilasi, seperti:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Namun demikian, hanya melewati karya Bool:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Jadi apa yang terjadi? Apa @autoclosure
?
Sunting: @auto_closure
diubah namanya@autoclosure
f({2 >1}())