Com Swift 3 e 4 , pi é agora definida como uma variável estática sobre os tipos de números de ponto flutuante Double
, Float
e CGFloat
, por isso, há importações específicas são necessárias mais:
Double.pi
Float.pi
CGFloat.pi
Observe também que o tipo real de .pi
pode ser inferido pelo compilador. Portanto, em situações em que é claro a partir do contexto que você está usando CGFloat
, por exemplo , você pode simplesmente usar .pi
(obrigado a @Qbyte e @rickster por apontar isso nos comentários).
Para versões mais antigas do Swift :
M_PI
é originalmente definido em, Darwin
mas também está contido em Foundation
e UIKit
, portanto, a importação de qualquer um desses itens fornecerá o acesso correto.
import Darwin // or Foundation or UIKit
let pi = M_PI
Nota:
Conforme observado nos comentários, o pi também pode ser usado como caractere unicode no Swift, então você também pode
let π = M_PI
alt + p
é o atalho (nos teclados americanos) que criará o π
caractere unicode.
var π = M_PI
var
. Certamentelet pi = M_PI
?.pi
vez da forma longa. Exemplolet x = CGFloat(42) * .pi
import Darwin
não é necessário todos os M_x são visíveis com oimport Foundation
(Versão Xcode 6.4 (6E35b))
fonte
aviso: 'M_PI' foi descontinuado: use 'Double.pi' ou '.pi' para obter o valor do tipo correto e evitar a transmissão.
surpreendentemente, .pi também funciona bem. M_PI está obsoleto no Swift 4.2.1, Xcode 10.1, que é a versão atual que estou usando. SO, use .pi ou Double.pi
fonte