私は不要なコードを書くことを避けるために探しています。私はタイプのため==
と<
を定義した場合、それは自動的に<=
(<
または==
)、>
(ない<
なく==
)、または>=
(ない<
)を得ることができますか?私はSwiftがこれらの通信事業者を無料で提供するだろうと考えていますが、そうではないようです。Swiftはオペレータの自動生成をサポートしていますか?
0
A
答えて
1
タイプをEquatable
に準拠させると、==
に基づいて、デフォルトの実装は!=
になります。
あなたのタイプはComparable
に適合させる場合、それはあなたの<
に基づい>
、<=
、および>=
のデフォルトの実装を提供します。 Comparable
はEquatable
を拡張するので、あなたもComparable
に準拠するように==
を提供しなければならないこと
注意。
0
はい。
がComparable
からEquatable
と<
から==
を実装し、あなたが期待するよう事業者の残りの部分は、デフォルトの実装を使用します。
、カスタムタイプに
Comparable
の適合性を追加するタイプの静的メソッドとして<
と==
演算子を定義します。==
オペレータはEquatable
プロトコルの要件であり、Comparable
が拡張されています。Swiftの同等性の詳細については、そのプロトコルのドキュメントを参照してください。残りの関係演算子のデフォルトの実装は標準ライブラリによって提供されるため、!=
,>
、<=
、および>=
を、コードなしでタイプのインスタンスとともに使用することができます。
1
はい。それは正確にはComparable
プロトコルの仕組みです。 2つの演算子:<
と==
を定義するだけです。スウィフトは残りを把握します。
struct MyStruct : Comparable {
var value: Int
}
func == (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.value == rhs.value
}
func < (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.value < rhs.value
}
let a = MyStruct(value: 1)
let b = MyStruct(value: 42)
print(b > a) // We never defined `>` operator
関連する問題
- 1. DynamoDBのマッパーは、自動生成キーのクエリをサポートしていますか?
- 2. NinjectはFunc(自動生成された工場)をサポートしていますか?
- 3. Swift自動コード生成
- 4. 自動割り当てオペレータの作成
- 5. dotliquidはオペレータとして 'not'をサポートしていますか?
- 6. DependencyInjectionはサービスの自動登録をサポートしていますか?
- 7. HTML/CSSはコンテンツの自動/スケーリングをサポートしていますか?
- 8. Sublime TextはRuby APIをサポートしていますか(自動完成)?
- 9. Xcode 8で自動生成されたSwift-Headerが壊れています
- 10. Dはドキュメント生成をサポートしていますか?
- 11. なぜRealmは自動インクリメントプライマリキーをサポートしていませんか?
- 12. PowerPivotはいつODataの自動リレーションシップをサポートしますか?
- 13. AWSは新しいインスタンスを自動的に生成します。
- 14. コアSwift 2.3ではデータコード生成がサポートされていません
- 15. CarthageはSwift 4で静的ライブラリをサポートしていますか?
- 16. QTP 10はFlash Webアプリケーションの自動化をサポートしていますか?
- 17. Aws Device FarmはRubyでAppiumの自動化をサポートしていますか?
- 18. IntelliJは、複数のファイルを自動的に作成するためのテンプレートをサポートしていますか?
- 19. プライマリキーを自動生成したい
- 20. XCodeは自動的にコメントを生成しましたか?
- 21. 自動生成と自動インクリメントのビルド番号の違いは何ですか?
- 22. iAdは自分の広告主をサポートしていますか?
- 23. seleniumはhttpsと自動Cookie処理をサポートしていますか?
- 24. 自動生成メイン・メソッドのEclipseテンプレートを変更しますか?
- 25. intelliJでJavadocのコメントを自動生成しますか?
- 26. レール3のパスを自動生成しますか?
- 27. VS2010は「コンパイラ生成関数の制御」をサポートしていますか?
- 28. Objective-Cメソッドヘッダーを実装から自動生成しますか?
- 29. Alembicは列の変更を自動生成できますか?
- 30. 自動生成mysqli_fetch_array列は
明確で簡潔な – BallpointBen