В 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
Примечание:
как отмечено в комментариях, пи также может использоваться как символ Юникода в Swift, так что вы можете также сделать
let π = M_PI
alt + p
это ярлык (на US-клавиатурах), который создаст π
символ Unicode.
var π = M_PI
var
. Конечноlet pi = M_PI
?.pi
вместо длинной формы. Напримерlet x = CGFloat(42) * .pi
import Darwin
не нужно все M_x видны сimport Foundation
(Версия Xcode 6.4 (6E35b))
источник
предупреждение: «M_PI» устарел: используйте «Double.pi» или «.pi», чтобы получить значение правильного типа и избежать приведения.
Удивительно, но .pi тоже отлично работает. M_PI устарел с Swift 4.2.1, Xcode 10.1, которая является текущей версией, которую я использую. SO, используйте .pi или Double.pi
источник