2015-03-10 8 views
5

स्विफ्ट में के लिए स्विफ्ट उद्योग मानक, मैं यह पता लगाने की है कि क्या मैंघुंघराले ब्रेसिज़

if(true) 
{ 
    //stuff 
} 
else 
{ 
    //other stuff 
} 

या

if(true){ 
    //stuff 
} else{ 
    //other stuff 
} 

मुझे पता है कि तकनीकी रूप से यह एक फर्क नहीं पड़ता क्या करना चाहिए कोशिश कर रहा हूँ, लेकिन मैं सोच रहा था कि उद्योग मानक क्या था, और मानक क्यों है ... मानक।

+1

पूरी तरह से एक व्यक्ति की राय - हम ** बहुत दृढ़ता से ** मेरे प्रत्येक समूह में केवल पहली शैली पर जोर देते हैं। मेरे लिए, यह ब्रेसिज़ हैंडलिंग की "नई पुरानी" शैली है। दूसरा विकल्प जो आप सूचीबद्ध करते हैं - हालांकि व्यापक - अविश्वसनीय रूप से मूर्ख और अजीब है - ** यह प्रारूपण का "नया गणित" है ** - कोई भी यह समझा नहीं सकता कि इसे कोड में क्यों पेश किया गया था, और उम्मीद है कि यह कुछ सालों में चलेगा एक बुरा विचार। यह एक गर्म विवादास्पद मुद्दा है और यह जानना मुश्किल है कि सबसे अच्छा क्या है। गंभीर रूप से एस्ट्रो का कहना है कि सभी मूर्खतापूर्ण मुद्दों के बारे में "ऐप्पल क्या करता है" करना हमेशा अच्छा विचार है। लेकिन हमारे लिए नहीं! किसी भी युवा लोगों को पढ़ने के लिए – Fattie

+1

। "नया गणित" गणित को पढ़ाने के लिए कुछ सरकारों द्वारा शुरू किया गया अनिवार्य रूप से पागल था, (70 के दशक के आसपास)। यह अविश्वसनीय रूप से हास्यास्पद था, और जल्द ही समाप्त हो गया। – Fattie

+0

स्विफ्ट दस्तावेज अनुशंसा करता है कि उद्घाटन घुंघराले ब्रेस पहले कोड की रेखा पर चलता है, जबकि उद्देश्य सी दस्तावेज कोड की पूर्व पंक्ति के बाद लाइन पर उद्घाटन घुंघराले ब्रेस डालने को प्रोत्साहित करता है। – ScottyBlades

उत्तर

6

ब्रैकेट शैली आम तौर पर राय का विषय है।

हालांकि, इस मामले में, कुछ जाने के लिए है। ऐप्पल स्विफ्ट के लिए एक भेद के साथ, अपने सभी दस्तावेज में विशेष रूप से प्रदान किए गए दूसरे वाक्यविन्यास का उपयोग करता है: कोष्ठक।

The Swift Programming Language Guide – Control Flow से

:

for-in छोरों के अलावा, स्विफ्ट का समर्थन करता है पारंपरिक सी शैली एक शर्त है और एक incrementer साथ for छोरों ...

यहाँ इस पाश प्रारूप के सामान्य रूप है:

for initialization; condition; increment { 
    statements 
} 

सेमिकोलन लूप की परिभाषा के तीन हिस्सों को अलग करते हैं, जैसे सी हालांकि, सी, स्विफ के विपरीत टी को पूरे "प्रारंभिकरण के चारों ओर कोष्ठक की आवश्यकता नहीं है; शर्त; वृद्धि "ब्लॉक।

दूसरे शब्दों में, आपको अपने सशर्त बयान (किसी भी प्रकार के लूप या तर्क कथन में) के आसपास कोष्ठक की आवश्यकता नहीं है, और आमतौर पर यह प्रलेखन में ऐप्पल इसका उपयोग कैसे करता है। डॉक्स से

if condition { 
    // Stuff 
} else { 
    // Other stuff 
} 

कुछ अन्य उदाहरण:

तो, नमूना आपके द्वारा दी गई, एप्पल इस शैली का प्रयोग करेंगे में (घुंघराले ब्रेसिज़ के बीच का अंतर ध्यान दें के रूप में अच्छी तरह से)

// While loops 
while condition { 
    statements 
} 

// Do-while loops 
do { 
    statements 
} while condition 

// Switch statements 
switch some value to consider { 
case value 1: 
    respond to value 1 
case value 2, 
value 3: 
    respond to value 2 or 3 
default: 
    otherwise, do something else 
} 
+0

धन्यवाद! मुझे हमेशा इसे पहला सूचीबद्ध तरीका करने के लिए सिखाया जाता था, लेकिन जब सेब के दस्तावेज को देखते हुए मैं उलझन में था। क्या आपको पता है कि सेब ने इस प्रारूप को क्यों चुना? –

+0

@ DaniM.Smith यह शैली की बात है, और यह केवल कुछ भाषाओं में वास्तव में महत्वपूर्ण है (और यहां तक ​​कि उन लोगों के साथ भी यह केवल किनारे के मामलों के साथ है)। यह ऐप्पल शैली का उपयोग करने का विकल्प है, और दस्तावेज लिखते समय यह स्पष्ट रूप से इसके मानक को लागू करता है, लेकिन मुझे निर्णय के पीछे विशिष्ट कारणों को नहीं पता है। – AstroCB

+0

जानकारी के लिए धन्यवाद। –

2

मैंने अलग-अलग कंपनी के लिए काम किया है और उनमें से प्रत्येक अलग-अलग मानक/कोडिंग नियमों का उपयोग कर रहा है।

जब ऐप्पल की बात आती है और उनके Swift documentation को देखते हैं, तो ऐसा लगता है कि वे आपके दूसरे विकल्प का उपयोग कर रहे हैं।

+1

यदि आप ऐप्पल के ओएस और ऐप्पल के उपकरणों के लिए कोड करना चाहते हैं, तो ऐप्पल की शैली का पालन करना बेहतर है। (निजी राय) –

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