プロトコルとエクステンションの基本
プロトコルを定義して型を準拠させ、デフォルト実装で拡張し、static要件とインスタンス要件の違いを理解します。
「プロトコルとエクステンションの基本」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。
導入
Swiftのプロトコルは、メソッドやプロパティの契約を定義します。型はプロトコルに準拠することで共通の振る舞いを得られます。エクステンションでは機能やデフォルト実装を追加できます。
プロトコルの定義
必要なメソッドやプロパティを指定したプロトコルを宣言します。
protocol Greetable {
func greet() -> String
}準拠
型は、プロトコルのすべての要件を実装することで準拠します。
struct Person: Greetable {
var name: String
func greet() -> String {
return "Hi, I am \\(name)"
}
}
print(Person(name:"Ada").greet())エクステンション
エクステンションを使うと、既存の型をプロトコルに準拠させることができます。
extension Int: Greetable {
func greet() -> String { return "Number \\(self)" }
}
print(5.greet())デフォルト実装
エクステンションではデフォルト実装を追加できるため、準拠する型がすべてを実装する必要はありません。
extension Greetable {
func greet() -> String { return "Hello!" }
}
struct Dog: Greetable { }
print(Dog().greet())staticとinstance
プロトコルではstaticメンバーとinstanceメンバーを要件として指定できます。
protocol Identifiable {
static var typeID: String { get }
var id: Int { get }
}
struct Item: Identifiable {
static var typeID = "Item"
var id: Int
}
print(Item.typeID, Item(id:1).id)プロトコルの確認
クイックチェック: プロトコルの主な役割は何ですか?
振り返り
振り返り: 共通の契約を定義するためにプロトコルを使い、型を準拠させ、既存の型を拡張し、デフォルト実装を追加します。staticとinstanceの要件も使い分けます。
よくある質問
「プロトコルとエクステンションの基本」レッスンは無料ですか?
はい。「プロトコルとエクステンションの基本」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。
「プロトコルとエクステンションの基本」で何を学びますか?
プロトコルを定義して型を準拠させ、デフォルト実装で拡張し、static要件とインスタンス要件の違いを理解します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「プロトコルとエクステンションの基本」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロトコルとエクステンションの基本
- プロトコルエクステンションと型エクステンション
- static要件とインスタンス要件