[解決済み] SwiftのプロトコルとJavaのインターフェイスを比較する
2022-04-22 08:29:22
質問
iOSのチュートリアルを見ているところです。 アップルの開発者向けページ .
と思われるのですが
protocol
と
interface
はほぼ同じ機能を持っています。
-
両者の違いはありますか?
-
プロジェクトでの使い分けは?
更新情報
はい
との違いや使い分けがまだよくわかりません。
protocol
と
interface
. このような質問をするときは、そのトピックについて簡単な説明が欲しいですね。ドキュメントからすべてを得るのは難しいかもしれません。
どのように解決するのですか?
基本的にプロトコルは、以下を除いてはJavaのインターフェースと非常によく似ています。
- Swift のプロトコルは、実装しなければならないプロパティ (すなわちフィールド) を指定することもできます。
- Swift のプロトコルは、値/参照を扱うために ミューティング キーワードを使用します (プロトコルは構造体、列挙体、クラスによって実装できるため)。
-
プロトコルの組み合わせは、"Protocol Composition"を使用することでいつでも行うことができます。これは旧来の swift を置き換えたものです。
protocol<A, B>
の方法でプロトコルを構成することができます。例えば、プロトコルに従わなければならない関数のパラメータを宣言する場合Named
とAged
としています。
func wishHappyBirthday(to celebrator: Named & Aged) {}
これらは、Java開発者にとってすぐにわかる違いです(少なくとも私がこれまで見てきた限りでは)。もっと詳しい情報はこちら こちら .
関連
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
ファインバグタイプ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
JQuery DataTable 详解
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
java 例外。Javaツールの初期化
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
このラインで複数のマーカーを解決する方法
-
テストが見つかりませんでした