2014-06-12 7 views
9

क्या स्विफ्ट में एक संकलन समय सम्मिलित करना संभव है जैसे सी ++ में static_assert? शायद एक कंपाइलर ब्रेक को मजबूर करने के लिए जेनरिक पर टाइप बाधाओं का फायदा उठाने का कोई तरीका?स्विफ्ट में समय सम्मिलित करें?

+0

मुझे नहीं पता कि यह कैसे उपयोगी हो सकता है। और स्विफ्ट पहले से ही 'जहां' जेनेरिक –

+1

को #error की तरह बाध्य करने के लिए उपयोग कर सकता है? –

+0

मैंने केवल सामान्य कार्यान्वयन दृष्टिकोण के रूप में जेनेरिक को बाधित करने का उल्लेख किया है, न कि मैं जो कहना चाहता हूं। मेरे मामले में मैं बड़ी संख्या में अंतर-संबंधित संकलन समय स्थिरांक पूर्णांक परिभाषित कर रहा था जिसे मैं संकलित समय पर सत्यापित करना चाहता था। कुछ सामान्य रूप से मैं C++ में static_assert का उपयोग करता हूं। – Neil

उत्तर

-5

आप एक सामान्य ज़ोर, जहां एप्लिकेशन दुर्घटना के बारे में बात कर रहे हैं यदि किसी विशेष हालत में विफल रहता है, बस का उपयोग करें: assert(condition,message)

उदाहरण के लिए: assert(2 == 3,"failing because 2 does not equal 3")

यह स्विफ्ट में संभव है। हालांकि, मुझे ध्यान रखना चाहिए कि ऐप्पल का डिज़ाइन मंत्र यह है कि एक ऐप को कभी भी क्रैश नहीं करना चाहिए, बल्कि इसकी सभी त्रुटियों को "परिष्कृत" फैशन में संभालना चाहिए।

+0

आप सामान्य रनटाइम जोर देने का जिक्र कर रहे हैं। मैं जो पूछ रहा हूं वह एक संकलन समय है जो C++ में static_assert जैसा है। यह स्थिर रूप से सत्यापन योग्य अभिव्यक्तियों के लिए उपयोग किया जाता है जो विफल होने पर एक कंपाइलर त्रुटि का कारण बनता है। – Neil

+0

नील, खेद है कि मैंने वास्तव में पालन नहीं किया - मैंने static_assert का उपयोग नहीं किया है। स्विफ्ट पुस्तक में मूलभूत खंड का बहुत अंत संक्षेप में दावाों का उल्लेख करता है। मैं आपसे पूछ रहे हैं जैसे संकलन समय के आवेषण के संबंध में कुछ भी नहीं देखा। मुझे नहीं पता कि वे भी उनका समर्थन करते हैं या नहीं। लिंक: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html –

0

यह वर्तमान में Swift evolution में समीक्षा अधीन है लेकिन वर्तमान में भाषा में नहीं है।

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करते हैं। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1905071 9) – Maak

संबंधित मुद्दे