LoginSignup
7
6

More than 5 years have passed since last update.

特殊記号を使って度数からラジアンへの変換を簡潔にする (Custom Operators)

Last updated at Posted at 2016-09-04

目的

図形描画のプログラムを書いていると、度数とラジアンどちらを使えばいいか悩むことがあります。ライブラリにはラジアンの値を渡すことが多いですが、度数表記の方が直感的で分かりやすいので、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

これで、度数とラジアンを同じ感覚で使えるようになります。
特殊記号を演算子として宣言する機能は、複雑な計算がいる分野で特に有効です。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6