我在想办法go include the PI constant in my Swift code.我已经在另一个答案中找到了帮助,我知道import Darwin可以让我访问C functions.

我还判断了Darwin中的Math包装,发现了以下声明:

var M_PI: Double { get } /* pi */

所以,我假设有一种方法可以在代码中使用PI,我只是不知道how...

推荐答案

对于Swift 3 & 4,pi现在被定义为浮点数类型DoubleFloatCGFloat的静态变量,因此不再需要特定的导入:

Double.pi
Float.pi
CGFloat.pi

还请注意,编译器可以推断.pi的实际类型.因此,如果从上下文中可以清楚地看出您正在使用CGFloat,那么您可以只使用.pi(感谢@Qbyte和@rickster在 comments 中指出了这一点).

older versions of Swift美元:

M_PI最初在Darwin中定义,但也包含在FoundationUIKit中,因此导入其中任何一个都将为您提供正确的访问权限.

import Darwin // or Foundation or UIKit

let pi = M_PI

Note:

let π = M_PI

alt + p是创建π unicode字符的快捷方式(在美国键盘上).

Swift相关问答推荐

防止NavigationLink自行返回导航视图

Swift 5.10:无法从非隔离的deinit访问属性*,这是Swift 6中的错误''''

为什么我的引用类型对象在初始化后有3个强引用?

RealityKit如何获得两个相对大小相同的ModelEntity?

try 在小部件内部读取核心数据的SwiftUI总是返回空吗?

我可以为UIMenu设定一个固定的订单吗?

如何才能在同一线程上调用类中的每个方法,而不对每个调用使用同步块?

对实例方法appendInterpolation的调用没有完全匹配

循环字典中的数组

从一个范围减go 多个范围

ConfirmationDialog取消swiftui中的错误

如何在 Combine 合并运算符的输出上使用 eraseToAnyPublisher

在 Swift 中增量写入大型文本文件的最佳方法

闭包 - deinit self 对象的时间

使 Picker 与其他 BinaryInteger 类型兼容

(SwiftLint)如果有正文,如何编写规则(可能是自定义),在{之后总是\n(换行)?

Vapor Swift 如何配置客户端连接超时

如何使被拖动的对象成为前景(foreground)对象

MKAnnotation Swift

iOS:检测设备是否为 iPhone X 系列(无框)