Cách lấy hằng số PI toán học trong Swift


153

Tôi đang cố gắng tìm cách đưa hằng số PI vào mã Swift của mình . Tôi đã tìm thấy sự giúp đỡ trong câu trả lời khác, để import Darwinmà tôi biết mang lại cho tôi quyền truy cập vào các chức năng C .

Tôi cũng đã kiểm tra Mathgói trong Darwinvà đi qua tuyên bố sau:

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

Vì vậy, tôi cho rằng có một cách sử dụng PI trong mã, tôi chỉ không biết làm thế nào ...

Câu trả lời:


282

Với Swift 3 & 4 , pi giờ đây được định nghĩa như là một biến tĩnh trên các loại số dấu chấm động Double, FloatCGFloat, vì vậy không nhập khẩu cụ thể được yêu cầu nữa:

Double.pi
Float.pi
CGFloat.pi

Cũng lưu ý rằng loại thực tế .picó thể được suy ra bởi trình biên dịch. Vì vậy, trong các tình huống rõ ràng từ ngữ cảnh mà bạn đang sử dụng CGFloat, vd , bạn chỉ có thể sử dụng .pi(cảm ơn @Qbyte và @rickster vì đã chỉ ra điều đó trong các bình luận).

Đối với các phiên bản cũ hơn của Swift :

M_PIban đầu được định nghĩa trong Darwinnhưng cũng được chứa trong FoundationUIKit, vì vậy việc nhập bất kỳ thứ nào trong số này sẽ cung cấp cho bạn quyền truy cập phù hợp.

import Darwin // or Foundation or UIKit

let pi = M_PI

Lưu ý: Như đã lưu ý trong các nhận xét, pi cũng có thể được sử dụng làm ký tự unicode trong Swift, vì vậy bạn cũng có thể làm như vậy

let π = M_PI

alt + plà phím tắt (trên bàn phím US) sẽ tạo πký tự unicode.


5
Vì Swift hỗ trợ Unicode, bạn cũng có thể làmvar π = M_PI
Cyrille

23
Vì pi là hằng số, có vẻ như sai lầm khi tuyên bố nó là a var. Chắc chắn phải let pi = M_PIkhông?
Grimxn

2
Bạn không cần bất cứ điều gì đặc biệt - Alt-p là pi theo mặc định.
Grimxn

3
Alt-P trên bàn phím Mỹ, tôi giả sử? Chắc chắn không phải của tôi (nơi nó gọi cửa sổ in). Xin vui lòng, đừng viết các ký tự unicode ngẫu nhiên trong mã. Tôi không muốn các đồng nghiệp của mình tìm hiểu cách viết π mỗi khi họ tìm thấy nó trong mã.
Sulthan

2
Chỉ cần một lưu ý: Nếu loại Pi có thể được suy ra, bạn cũng có thể sử dụng .pithay vì dạng dài. Ví dụ:let x = CGFloat(42) * .pi
Qbyte

15

import Darwin không cần thiết, tất cả M_x đều hiển thị với import Foundation

(Phiên bản Xcode 6.4 (6E35b))


1

cảnh báo: 'M_PI' không được dùng nữa: Vui lòng sử dụng 'Double.pi' hoặc '.pi' để nhận giá trị của loại chính xác và tránh truyền.

đáng ngạc nhiên, .pi cũng hoạt động tốt. M_PI không được dùng nữa kể từ Swift 4.2.1, Xcode 10.1, đây là phiên bản hiện tại tôi đang sử dụng. SO, Sử dụng .pi hoặc Double.pi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.