Rhythm & Biology

Engineering, Science, et al.

Swift: typealiasのスコープ

Type Aliasのスコープってどうなってるんだろうという単純な疑問。

ドキュメントを見ても書いてない(見てるところが違う?)。
The Swift Programming Language (Swift 4.0.3): Declarations

通常の変数と同じスコープ管理されてるだろうという仮説のもと、playgroundで試してみる。

do {
    typealias ColorCode = UInt8
    let r = ColorCode.max
    print(r)
}

let g = ColorCode.min
print(g)

エラーが出る。

Playground execution failed:

error: TypeAlias.playground:5:9: error: use of unresolved identifier 'ColorCode'
let g = ColorCode.min
        ^~~~~~~~~

予想通りの結果となった。
Type Aliasに限らず、Declarationsは同じスコープ管理がされているようだ。

The Swift Programming Language (Swift 4.0.3)をざっと読む限りscopeの定義が見当たらないのだけど、暗黙の共通認識という扱いなのだろうか。