Có thể thêm tiện ích mở rộng cho các loại đối tượng Swift hiện có bằng cách sử dụng tiện ích mở rộng, như được mô tả trong đặc tả ngôn ngữ .
Do đó, có thể tạo các tiện ích mở rộng như:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Tuy nhiên, cách thực hành đặt tên tốt nhất cho các tệp nguồn Swift có chứa các phần mở rộng như vậy là gì?
Trước đây, quy ước là sử dụng extendedtype+categoryname.m
cho loại Objective-C như được thảo luận trong hướng dẫn Objective-C . Nhưng ví dụ Swift không có tên danh mục và gọi nó String.swift
có vẻ không phù hợp.
Vì vậy, câu hỏi là: với String
phần mở rộng ở trên , tập tin nguồn swift nên được gọi là gì?
ClassName+ExtensionName
định dạng và tôi không thấy quá nhiều người vẫn đang sử dụng. Bên cạnh đó, tôi thấy rằng cồng kềnh thay vì chỉ xác định các lớp và phần mở rộng cùng nhau, hoặc đặt cho tệp một tên tốt hơn như FooAbleTypes
và xác định các thể hiện trong tổng hợp.
Extensions.swift
. Bằng cách đó, bạn sẽ không mất dấu vết của họ và những người mới tham gia vào cơ sở mã sẽ ngay lập tức chú ý đến họ. Và tôi muốn giữ các tiện ích mở rộng một lần ở chế độ riêng tư đối với tệp mà chúng cần.