0Pricing
Swift Academy · レッスン

static要件とインスタンス要件

プロトコルにおけるstatic(型レベル)要件とインスタンス(オブジェクトレベル)要件を区別し、準拠する型での実装方法を学びます。

「static要件とインスタンス要件」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。

概要

プロトコルではインスタンスメンバーやstaticメンバーを要求できます。それぞれの違いを理解すると、明確なAPIを設計しやすくなります。

インスタンス要件

インスタンス要件は、準拠する型の各インスタンスで実装する必要があります。

protocol Drawable {
    func draw() -> String
}
struct Circle: Drawable {
    func draw() -> String { "Drawing a circle" }
}
print(Circle().draw())

static要件

static要件は、型レベルのメンバー(プロパティまたはメソッド)によって満たされます。

protocol Identifiable {
    static var tag: String { get }
}
struct User: Identifiable {
    static var tag: String { "USR" }
}
print(User.tag)

クラスでのstatic

クラスでは、static要件をstaticまたはclassで実装できます(classではオーバーライドが可能です)。

protocol Describable {
    static func describeType() -> String
}
class Animal: Describable {
    class func describeType() -> String { "Animal type" }
}
print(Animal.describeType())

組み合わせた例

プロトコルでは、柔軟性を高めるためにstatic要件とインスタンス要件を組み合わせることがよくあります。

protocol Logger {
    static var system: String { get }
    func log(_ msg: String)
}
struct ConsoleLogger: Logger {
    static let system = "console"
    func log(_ msg: String) { print("[\\(Self.system)]", msg) }
}
let logger = ConsoleLogger()
logger.log("hello")

注記

注記:

  • 型全体で共有する情報やファクトリにはstaticを使用します。
  • オブジェクトごとの動作にはインスタンスを使用します。
  • クラスでは、staticメンバーのオーバーライドを可能にするためにclassを使用できます。

staticとインスタンス

確認問題:static要件を特徴付けるものは何でしょうか?

まとめ

まとめ:インスタンス要件は各オブジェクトに適用され、static要件は型レベルで適用されます。クラスでは、オーバーライド可能なstaticメンバーにclassを使用できます。

よくある質問

「static要件とインスタンス要件」レッスンは無料ですか?

はい。「static要件とインスタンス要件」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。

「static要件とインスタンス要件」で何を学びますか?

プロトコルにおけるstatic(型レベル)要件とインスタンス(オブジェクトレベル)要件を区別し、準拠する型での実装方法を学びます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「static要件とインスタンス要件」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

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