Tôi đang chuyển đổi mã sang Swift bằng Xcode 8, nhưng trình biên dịch cảnh báo thêm @escape
vào một số hàm lồng nhau đã được tạo trong Swift 2.3, với cú pháp đóng. Tôi đã tìm thấy một số từ khóa khác cũng @noescape
và @autoclosure
, nhưng tôi có một số câu hỏi về vấn đề này:Sự khác biệt giữa @noescape, @escaping và @autoclosure là gì?
- cần chức năng của từ khóa này là gì?
- Tác động của việc viết
@escaping
là gì? - Bạn có cần viết không?
- Có phải
@autoclosure
hoạt động giống như@escape
? - Khi nào nên sử dụng từ khóa nào và tại sao?
Đây là tài liệu Swift-evolution nhưng không nhận được nhiều từ tài liệu đó.
Tôi vừa nhận thấy rằng bạn đã gắn thẻ câu hỏi Swift 3. Không có '@ noescape' hoặc' @ escape' trong Swift 3. – Sulthan