2014年08月16日
Posted by 屋台ブルー at
2014年08月16日00:00 Comment(0)
Swiftで遊ぼう! - 37 typealiasを考える

Type Aliasesに取りあげられている例文はたったこれだけ。
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min
これを読み流しで、すーっと頭に入る理解力が私にはない!
まず一番疑問に思うところが、「.min」というメソッド。これが「型」で利用できるということが頭にすーっと入ってこない。
私に必要な説明に次の文章がいる。
var maxAmlitudeFound:UInt16
maxAmplitudeFound = UInt16.min
まあ、これも文章の中に書いていあるんですが、こういう実験をしてみて理解する。
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min
var reallymaxamplitude = AudioSample.max
maxAmplitudeFoundには「0」が入り、reallymaxamplitudeには「65535」が入る。
そして、このtypealiasの利用として、重要なのがプロトコールを定義するところだろう。
プロトコールの理解には本当に苦しんでいて、まだ完全納得までできていない。
というのも、プロトコールの説明に出てくる例文が、
protocol FullyNamed {
var fullName: String {get}
}
struct Person: FullyNamed {
var fullName:String
}
let john = Person(fullName:"John Appleseed")
プロトコールがメソッドやプロパティのブループリントとして、クラスや構造体に組み込むことができるというシンプルな説明文として相応しいかもしれないが、その利便性というのがなかなか伝わってこない。プロトコールでメソッドを定義するのであれば、そのプロパティもより抽象的であるべきでしょう。
ということで、プロトコールの中で抽象的な型宣言(どんなタイプも受けいられるようにするため)をする時にtypealiasを使うという流れなんでしょう。
そういう話が、「Associated Types」のところで説明してあった。
さて、ここでtypealiasを使ったプロトコールの説明があるけど、再び分からない記述が... subscript... また明日以降に考えよう。