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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロトコルとエクステンションの基本
- プロトコルエクステンションと型エクステンション
- static要件とインスタンス要件