iOS アプリの Apple 公式ドキュメントや著名作者のコードをあれこれ眺めていて気になっていたのは、
「なんで public を省略しないのか」
ということ。
public extension Image {
static let fountain = Image(.fountain)
static let fountainFill = Image(.fountainFill)
}
「はっきり明示する。」
のがポリシーなのかと思ったが省略してる箇所もある。
なんでなの ?
🚫 '***' is inaccessible due to 'internal' protection level
試しに消してみると、
extension Image {
static let fountain = Image(.fountain)
static let fountainFill = Image(.fountainFill)
}
呼んでいる場所でエラー発生。
'fountain' is inaccessible due to 'internal' protection level
見えてはいるけどアクセスができない。
🚫 まとめ
Java など他の言語とは違います。
アクセスレベルを省略した場合は「internal」。
同じモジュール内からしかアクセスできません。
移民はつらい。
しかし、さすが公式サンプルコードは勉強になります。
しっかりしています。
👉 Access Control | Documentation
関連ワード: apple・iOS・iPhone・mac・macOS・Swift・おすすめ・今さら聞けない・初心者・開発・SwiftData・SwiftUI