Swiftで遊ぼう! - 821 - プリプロセッサ
プログラミングド素人の私は、プリプロセッサの意味も分からなかった。
いちおう「インタープリタ」と「コンパイラ」は分かっているつもりだったけど、「プリプロセッサって何?」だったんで、少し勉強しました。
勉強しているチュートリアルに次のコードがあったからです。
#if !(arch(x86_64) || arch(arm64)) func sqrt(a: CGFloat) -> CGFloat { return CGFloat(sqrtf(Float(a))) } #endif
OS依存しているメソッドが存在するようです。コンパイルする前にCGFloat型を扱えない関数sqrt()でもCGFloat型として計算させるメソッドにしているみたいです。
arch()メソッドは、「x86_64」はインテル製の64ビットOS、「arm64」はARM製(アップル?)の64ビットOSならtrueを返すんでしょう。「!(A||B)」という条件文は、「AでもBでもなかったら」と解釈できて、64ビットOSじゃなければこのメソッドが導入されるということでしょう。
これだけ