我正在尝试找到一种方法在我的Swift代码中包含PI常量。我已经在另一个答案中找到了帮助,可以导入Darwin
,我知道这会让我可以访问C函数。
我还检查了Darwin
中的Math
包,并找到了以下声明:
var M_PI: Double { get } /* pi */
因此,我假设有一种在代码中使用PI的方法,只是我不知道具体如何...
使用 Swift 3 & 4,pi 现在被定义为浮点数类型 Double
、Float
和CGFloat
上的静态变量,因此不再需要特定的导入:
Double.pi
Float.pi
CGFloat.pi
还要注意的是,.pi
的实际类型可以被编译器推断出来。因此,在情境明确表明你正在使用例如 CGFloat
的情况下,只需要使用 .pi
即可(感谢 @Qbyte 和 @rickster 在评论中指出这一点)。
对于旧版本的 Swift:
M_PI
最初定义在 Darwin
中,但也包含在 Foundation
和 UIKit
中,因此导入其中任何一个都会给你正确的访问权限。
import Darwin // or Foundation or UIKit
let pi = M_PI
注意: 如评论中所述,pi也可以作为Swift中的Unicode字符使用,因此您也可以这样做。
let π = M_PI
alt + p
是在美式键盘上创建 π
Unicode 字符的快捷键。
import Darwin
不必要,使用 import Foundation
即可查看所有 M_x。
(Xcode 版本 6.4 (6E35b))
警告: 'M_PI'已过时: 请使用'Double.pi'或'.pi'获取正确类型的值并避免强制转换。
令人惊讶的是,.pi也可以正常工作。 自Swift 4.2.1、Xcode 10.1起,M_PI已过时,这是我正在使用的当前版本。因此,请使用.pi或Double.pi。
var π = M_PI
。 - Cyrille.pi
而不是长形式。例如:let x = CGFloat(42) * .pi
。 - Qbyte