स्विफ्ट में मैटाकेमिकल पीआई को कैसे प्राप्त करें


153

मैं अपने स्विफ्ट कोड में PI स्थिरांक को शामिल करने का एक तरीका खोजने की कोशिश कर रहा हूं । मुझे पहले से ही एक और उत्तर में मदद मिली, import Darwinजिसके बारे में मुझे पता है कि मुझे सी फ़ंक्शन का उपयोग करने की अनुमति है

मैंने Mathपैकेज भी चेक किया Darwinऔर निम्नलिखित घोषणा में आया:

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

इसलिए, मुझे लगता है कि कोड में PI का उपयोग करने का एक तरीका है, मुझे नहीं पता कि कैसे ...

जवाबों:


282

साथ स्विफ्ट 3 और 4 , अनुकरणीय अब चल बिन्दु संख्या प्रकार पर एक स्थिर चर के रूप में परिभाषित किया गया है Double, Floatऔर CGFloatहै, तो कोई विशेष आयात किसी भी अधिक की आवश्यकता है:

Double.pi
Float.pi
CGFloat.pi

यह भी ध्यान दें कि .piसंकलक द्वारा वास्तविक प्रकार का अनुमान लगाया जा सकता है। इसलिए, ऐसी स्थितियों में जहां यह संदर्भ से स्पष्ट है कि आप उदाहरण के लिए उपयोग कर रहे हैं CGFloat, आप केवल .piटिप्पणी में इसे इंगित करने के लिए @Qbyte और @rickster का उपयोग कर सकते हैं )।

स्विफ्ट के पुराने संस्करणों के लिए :

M_PIमूल रूप में परिभाषित किया गया है Darwin, लेकिन यह भी में निहित है Foundationऔर UIKit, इसलिए आयात करने इनमें से किसी भी आप सही पहुँच दे देंगे।

import Darwin // or Foundation or UIKit

let pi = M_PI

नोट: जैसा कि टिप्पणियों में कहा गया है, पाई का उपयोग स्विफ्ट में यूनिकोड चरित्र के रूप में भी किया जा सकता है , इसलिए आप ऐसा कर सकते हैं

let π = M_PI

alt + pशॉर्टकट (यूएस-कीबोर्ड पर) है जो πयूनिकोड चरित्र का निर्माण करेगा ।


5
जैसा कि स्विफ्ट यूनिकोड का समर्थन करता है, आप भी कर सकते हैंvar π = M_PI
साइरिल

23
जैसा कि पीआई एक स्थिर है, इसे एक के रूप में घोषित करने के लिए विकृत लगता है var। निश्चित रूप से let pi = M_PI?
ग्रिम्क्सन

2
आपको कुछ विशेष की आवश्यकता नहीं है - अल्ट-पी डिफ़ॉल्ट रूप से है।
ग्रिम्क्सन

3
एक अमेरिकी कीबोर्ड पर Alt-P, मुझे लगता है? निश्चित रूप से मेरा नहीं (जहां यह प्रिंट विंडो को आमंत्रित करता है)। कृपया, कृपया, कोड में यादृच्छिक यूनिकोड वर्ण न लिखें। मैं नहीं चाहता कि मेरे सहकर्मी गुग्लिंग करें कि कैसे लिखें find हर बार वे इसे कोड में पाते हैं।
सुल्तान

2
बस एक नोट: यदि पाई का प्रकार अनुमान लगाया जा सकता है तो आप .piलंबे फॉर्म के बजाय भी उपयोग कर सकते हैं । जैसेlet x = CGFloat(42) * .pi
क़ब्ते

15

import Darwin जरूरत नहीं है सभी M_x के साथ दिखाई दे रहे हैं import Foundation

(Xcode संस्करण 6.4 (6E35b))


1

चेतावनी: 'M_PI' को पदावनत किया गया है: कृपया सही प्रकार का मान प्राप्त करने और कास्टिंग से बचने के लिए 'Double.pi' या '.pi' का उपयोग करें।

आश्चर्यजनक रूप से, .pi भी ठीक काम करता है। M_PI को Swift 4.2.1, Xcode 10.1 के रूप में चित्रित किया गया है, जो कि वर्तमान संस्करण मैं उपयोग कर रहा हूं। एसओ, उपयोग .pi, या Double.pi

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.