目的
図形描画のプログラムを書いていると、度数とラジアンどちらを使えばいいか悩むことがあります。ライブラリにはラジアンの値を渡すことが多いですが、度数表記の方が直感的で分かりやすいので、SwiftのCustom Operatorsを使って度数からラジアンに変換する演算子を作ります。
実装
まず、度数をラジアンに変換する演算子 ° を宣言します。
postfix operator ° // ° はMacキーボードで Option+Shift+8
次に、図形描画ではCGFloatをよく使うため、これを拡張します。
M_PIもCGFloat型のπとして変換するとラジアンも使いやすくなります。
let π = CGFloat(M_PI) // π はMacキーボードで Option+p
extension CGFloat {
static postfix func ° (_ f: CGFloat) -> CGFloat {
return f*π/180
}
}
結果
π/2 //1.5707963267949
90° //1.5707963267949
これで、度数とラジアンを同じ感覚で使えるようになります。
特殊記号を演算子として宣言する機能は、複雑な計算がいる分野で特に有効です。