我试图找到一种方法在我的Swift代码中包含PI常量。我已经找到了另一个答案的帮助,我知道的import Darwin
让我可以访问C函数。
我还检查了Math
中的Darwin
包,并发现了以下声明:
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角色的快捷键(在US-keyboards上)。
不需要import Darwin
所有M_x都可以用import Foundation
看到
(Xcode版本6.4(6E35b))
警告:'M_PI'已弃用:请使用'Double.pi'或'.pi'获取正确类型的值并避免强制转换。
令人惊讶的是,.pi也运行良好。从Swift 4.2.1,Xcode 10.1开始,不推荐使用M_PI,这是我正在使用的当前版本。所以,使用.pi或Double.pi