Có sự khác biệt nào giữa Protocol trong Swift và Interface trong Java không?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
109 lượt xem
Java senior

Về cơ bản, các Swift protocol rất giống với Java interface ngoại trừ:

  • Swift protocol có thể chỉ định các thuộc tính phải được triển khai.
  • Swift protocol cần xử lý giá trị / tham chiếu thông qua việc sử dụng từ khóa "mutating" (vì các protocol có thể được thực hiện bởi structure, enumeration hoặc class).
  • Bạn có thể kết hợp các protocol tại bất kỳ thời điểm nào bằng cách sử dụng "Protocol Composition". Điều này thay thế cách protocol<A, B> cũ của protocol composition. Ví dụ: khai báo một tham số hàm phải tuân theo protocol Named và Aged:
func wishHappyBirthday(to celebrator: Named & Aged) {}
{{login.error}}