Con Swift 3 y 4 , PI se define ahora como una variable estática en los tipos de números de punto flotante Double
, Float
y CGFloat
, por lo que no se requieren importaciones específicas de los otros:
Double.pi
Float.pi
CGFloat.pi
También tenga en cuenta que .pi
el compilador puede inferir el tipo real de . Entonces, en situaciones en las que está claro por el contexto que está utilizando CGFloat
, por ejemplo , puede usar .pi
(gracias a @Qbyte y @rickster por señalarlo en los comentarios).
Para versiones anteriores de Swift :
M_PI
se definió originalmente en Darwin
pero también se incluye en Foundation
y UIKit
, por lo que importar cualquiera de estos le dará el acceso correcto.
import Darwin // or Foundation or UIKit
let pi = M_PI
Nota:
Como se señaló en los comentarios, pi también se puede usar como carácter unicode en Swift, por lo que también podría hacerlo
let π = M_PI
alt + p
es el acceso directo (en teclados de EE. UU.) que creará el π
carácter unicode.
var π = M_PI
var
.let pi = M_PI
¿ Seguro ?.pi
lugar de la forma larga. Por ejemplolet x = CGFloat(42) * .pi
import Darwin
no es necesario, todos los M_x son visibles con elimport Foundation
(Xcode versión 6.4 (6E35b))
fuente
advertencia: 'M_PI' está en desuso: utilice 'Double.pi' o '.pi' para obtener el valor del tipo correcto y evitar la conversión.
Sorprendentemente, .pi también funciona bien. M_PI está en desuso a partir de Swift 4.2.1, Xcode 10.1, que es la versión actual que estoy usando. SO, use .pi o Double.pi
fuente