0Pricing
Swift Academy · レッスン

プロトコルとエクステンションの基本

プロトコルを定義して型を準拠させ、デフォルト実装で拡張し、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロトコルとエクステンションの基本
  2. プロトコルエクステンションと型エクステンション
  3. static要件とインスタンス要件
← Swift Academyに戻る