拡張機能を使用して、既存のSwiftオブジェクト型に拡張機能を追加することができます。言語仕様。
その結果、次のような拡張機能を作成できるようになります。
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
しかし、このような拡張子を含む Swift ソース ファイルの命名方法のベストプラクティスは何でしょうか?
過去には、extendedtype+categoryname.m
Objective-Cの型には、Objective-C ガイドしかし、Swift の例にはカテゴリ名がないため、それを呼び出すのはString.swift
適切ではないようです。
そこで質問です。上記のString
拡張子を考えると、Swift ソース ファイルの名前は何にすればよいでしょうか?
ベストアンサー1
私が見たほとんどの例は Objective-C のアプローチを模倣しています。上記の例の拡張は次のようになります。
String+UTF8Data.swift
利点は、命名規則により、それが拡張機能であること、およびどのクラスが拡張されているかを簡単に理解できることです。
Extensions.swift
または を使用する場合の問題StringExtensions.swift
は、ファイルの内容を見ずに名前からファイルの目的を推測できないことです。
Java で使用されるアプローチを使用するxxxable.swift
と、メソッドのみを定義するプロトコルまたは拡張機能では問題なく機能します。ただし、上記の例では属性を定義しているため、UTF8Dataable.swift
文法的にはあまり意味がありません。