Swift'te matematiksel PI nasıl sabitlenir


153

Swift koduma PI sabiti dahil etmek için bir yol bulmaya çalışıyorum . Zaten C işlevlerineimport Darwin erişebileceğimi bildiğim başka bir cevapta yardım buldum .

Ayrıca Mathpaketi teslim aldım Darwinve aşağıdaki beyanname ile karşılaştım:

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

Yani, kodda PI kullanmak için bir yol olduğunu varsayalım, sadece nasıl bilmiyorum ...

Yanıtlar:


282

İle Swift 3 & 4 , pi şimdi kayan noktalı sayı türlerinde statik değişken olarak tanımlanır Double, Floatve CGFloatözel ithalatı artık gerekli böylece:

Double.pi
Float.pi
CGFloat.pi

Ayrıca, gerçek türün .piderleyici tarafından çıkarılabileceğini unutmayın . Bu nedenle, örneğin kullandığınız bağlamdan net olduğu durumlarda CGFloat, sadece kullanabilirsiniz .pi(yorumlarda belirttiği için @Qbyte ve @rickster sayesinde).

For Swift eski sürümlerinde :

M_PIbaşlangıçta tanımlanır Darwinancak aynı zamanda içinde bulunur Foundationve UIKitbu nedenle bunların herhangi birinin içe aktarılması size doğru erişimi sağlayacaktır.

import Darwin // or Foundation or UIKit

let pi = M_PI

Not: Yorumlarda belirtildiği gibi, pi Swift'te unicode karakter olarak da kullanılabilir , bu yüzden

let π = M_PI

alt + pπunicode karakteri oluşturacak kısayoldur (ABD klavyelerinde) .


5
Swift, Unicode'u desteklediğinden, şunları da yapabilirsinizvar π = M_PI
Cyrille

23
Pi bir sabit olduğu için, bunu bir olarak ilan etmek sapık görünüyor var. Elbette let pi = M_PI?
Grimxn

2
Özel bir şeye ihtiyacınız yoktur - Alt-p varsayılan olarak pi'dir.
Grimxn

3
ABD klavyesinde Alt-P, sanırım? Kesinlikle benim değil (burada yazdırma penceresini çağırır). Lütfen, lütfen, koda rastgele unicode karakterler yazmayın. Meslektaşlarımın her zaman kodda bulduklarında nasıl yazılacağını istemiyorum.
Sulthan

2
Sadece bir not: Pi tipi .piçıkartılabilirse, uzun form yerine kullanabilirsiniz . Ör.let x = CGFloat(42) * .pi
Qbyte

15

import Darwin gerekli değil tüm M_x import Foundation

(Xcode Sürüm 6.4 (6E35b))


1

uyarı: 'M_PI' kullanımdan kaldırıldı: Doğru türün değerini almak ve dökümden kaçınmak için lütfen 'Double.pi' veya '.pi' kullanın.

şaşırtıcı bir şekilde, .pi de iyi çalışıyor. M_PI, kullandığım geçerli sürüm olan Swift 4.2.1, Xcode 10.1'den itibaren kullanımdan kaldırıldı. SO, .pi veya Double.pi kullanın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.