Swiftではmapと+を使って配列定数を定義できる
Swift で配列定数を定義する際に、map を使うこともできると今日初めて知った。例としては次のような感じ:
let distances = [1.0, 2.0, 4.0, 8.0].map({$0 * 25.4}) + // inch [1.0, 2.0, 4.0, 8.0].map({$0 * 25.4 * 12}) // feet
これが役に立つことは、あまり無いんだろうなと思う。ただ、拙作の Dof Table の表における「行」をあらかじめ定義する際、短い距離のうちはインチ単位、ある程度長くなるとフィート単位に切り替えている。こういう定義をする場合、ハードコーディングでやると次のような感じになって読みにくいし、書きにくい。
let distances = [1.0 * 25.4, 2.0 * 25.4, 4.0 * 25.4, 8.0 * 25.4, // inch 1.0 * 304.8, 2.0 * 304.8, 4.0 * 304.8, 8.0 * 304.8] // feet
map を使うバージョンの方は、おそらく定数値がランタイムに演算されるだろうから、わずかに定数初期化コストが増加すると思う。それでも、まあアプリ起動時に一回だけ計算されるだけだし、保守性のメリットが上回ると思う次第。