これはその前の文がないと、分かりにくいですね。
In C and Objective-C, you define static constants and variables associated with a type as global static variables. In Swift, however, type properties are written as part of the type’s definition, within the type’s outer curly braces, and each type property is explicitly scoped to the type it supports.
「CやObjective-Cでは、型に関連づけられた静的定数や変数をグローバルスタティック変数として定義する。Swiftでは、しかしながら、タイププロパティは型定義の一部として、型の外側の波括弧の内側に記述される。そして、それぞれのタイププロパティは、それがサポートするその型に対して明示的にスコープされる。」
Objective-Cなどでは型に関連付けられた変数が、グローバルスコープでした。例えば、UIViewNoIntrinsicMetric
はグローバル定数です。
それに対して、Swiftでは型に属するようになっている事を強調しているものと思います。先の定数は、Swiftでは、UIView.noIntrinsicMetric
となっていて、noIntrinsicMetric
はUIView
に属していることが分かります。ただ、noIntrinsicMetric
だけではどこからもアクセスできず、必ずUIView.noIntrinsicMetric
としてアクセスする必要があります。(UIView
のサブクラスのインスタンスメソッドの中からでもnoIntrinsicMetric
だけではアクセスできません。スコープが型の中にあるというより、型の表面にあり外からだけアクセスできるような感じです。)
Swiftだけ考えれば、型定義の{}の内側で宣言したタイププロパティに、型名.タイププロパティ名
としてアクセスする事は当然で、何を明示的と言っているのかはっきりしない感じがしますね。Objective-Cではグローバルスコープにある定数が何の型に属しているのか、明示的ではありませんでした。Swiftではそこが明示的になったので、それを強調したかったのではないかと思います。
原文リンク:The Swift Programing language Properties
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/09 13:21
2020/01/10 08:56
2020/01/11 05:01