Ví dụ, tôi muốn gọi một phương thức trên một cá thể lớp sẽ thêm willSet
vào một thuộc tính. Tôi không muốn chỉ định willSet
trong khai báo thuộc tính, vì tôi cần thêm logic có điều kiện trong trình quan sát và sẽ chạy không cần thiết cho mọi cá thể khác không có phương thức này được gọi.Người quan sát thuộc tính có thể được thêm sau tuyên bố ban đầu không? Ví dụ:
Something như thế này:
var someProperty: Int
func someMethod() {
someProperty { // this is the syntax/ability I'm unsure about
willSet { ...add some behavior... }
}
...more stuff...
}
Ah, do đó, nó không phải là một tính năng bản địa theo cách tôi đã hỏi về. Giải pháp này không nhận được xung quanh hai vấn đề tôi đã quan tâm về: Mỗi trường hợp sẽ phải chạy 'willSet' và điều kiện kết quả bên trong nó. Tôi đã hy vọng cho một cách để có trường hợp không có 'willSet' ở tất cả, trừ khi họ đã thêm rằng quan sát tại một số điểm sau này. – solidcell
Bạn có quan tâm đến hiệu suất không? Bởi vì Trong ví dụ trên, bạn sẽ chỉ thực hiện mã nếu đóng tùy chọn không phải là nil và kiểm tra xem việc đóng! = Nil có phân nhánh hiệu suất không đáng kể không. – cmyr
Đó là một phần để khám phá ngôn ngữ. Tuy nhiên, như một ví dụ, tôi đang suy nghĩ về một trường hợp mà tôi muốn thêm một phần mở rộng đóng gói một số logic và người quan sát thuộc tính đó nên được nhóm lại trong cùng một phần mở rộng đó. – solidcell