खोज…


टिप्पणियों

स्विफ्ट की एक आधिकारिक शैली मार्गदर्शिका है: Swift.org एपीआई डिजाइन दिशानिर्देश । एक और लोकप्रिय गाइड आधिकारिक रेवेंडरलिच डॉट कॉम स्विफ्ट स्टाइल गाइड है।

स्पष्ट उपयोग

अस्पष्टता से बचें

कक्षाओं, संरचनाओं, कार्यों और चर का नाम अस्पष्टता से बचना चाहिए।

उदाहरण:

extension List {
    public mutating func remove(at position: Index) -> Element {
        // implementation
    }
}

इस फ़ंक्शन के लिए फ़ंक्शन कॉल तब इस तरह दिखाई देगा:

list.remove(at: 42)

इस तरह, अस्पष्टता से बचा जाता है। यदि फ़ंक्शन कॉल सिर्फ list.remove(42) होगा तो यह स्पष्ट नहीं होगा, यदि 42 के बराबर एक एलिमेंट हटा दिया जाएगा या यदि इंडेक्स 42 पर एलिमेंट हटा दिया जाएगा।


अतिरेक से बचें

कार्यों के नाम में अनावश्यक जानकारी नहीं होनी चाहिए।

एक बुरा उदाहरण होगा:

extension List {
    public mutating func removeElement(element: Element) -> Element? {
        // implementation
    }
}

फ़ंक्शन के लिए कॉल list.removeElement(someObject) तरह लग सकता है। चर someObject पहले से ही इंगित करता है, कि एक तत्व हटा दिया गया है। फंक्शन सिग्नेचर इस तरह दिखना बेहतर होगा:

extension List {
    public mutating func remove(_ member: Element) -> Element? {
        // implementation
    }
}

इस फ़ंक्शन का कॉल इस तरह दिखता है: list.remove(someObject)


उनकी भूमिका के अनुसार नामकरण चर

चर को उनके प्रकार (जैसे कारखाना, स्ट्रिंग, आदि) के बजाय उनकी भूमिका (जैसे आपूर्तिकर्ता, अभिवादन) द्वारा नामित किया जाना चाहिए।

प्रोटोकॉल नाम और चर नाम के बीच उच्च युग्मन

यदि प्रकार का नाम ज्यादातर मामलों में अपनी भूमिका का वर्णन करता है (उदाहरण के लिए Iterator), तो प्रत्यय का नाम 'टाइप' होना चाहिए। (उदाहरण IteratorType)

कमजोर टाइप किए गए मापदंडों का उपयोग करते समय अतिरिक्त विवरण प्रदान करें

यदि ऑब्जेक्ट का प्रकार स्पष्ट रूप से फ़ंक्शन कॉल में इसके उपयोग को इंगित नहीं करता है, तो फ़ंक्शन को इसके उपयोग का वर्णन करते हुए, हर कमजोर टाइप किए गए पैरामीटर के लिए पूर्ववर्ती संज्ञा के साथ नामित किया जाना चाहिए।
उदाहरण:
func addObserver(_ observer: NSObject, forKeyPath path: String)

जिस पर कॉल करने के लिए `ऑब्जेक्ट की तरह दिखेगा। एडऑब्जर्वर (स्वयं, forKeyPath: पथ)

के बजाय

func add(_ observer: NSObject, for keyPath: String)

जिस पर कॉल object.add(self, for: path) तरह object.add(self, for: path)

धाराप्रवाह उपयोग

प्राकृतिक भाषा का उपयोग करना

कार्य कॉल प्राकृतिक अंग्रेजी भाषा के करीब होनी चाहिए।

उदाहरण:

list.insert(element, at: index) 

के बजाय

list.insert(element, position: index)

नामकरण फैक्टरी के तरीके

कारखाने के तरीकों को उपसर्ग `मेक` से शुरू करना चाहिए।

उदाहरण:

factory.makeObject()

इनिशियलाइज़र्स एंड फैक्ट्री मेथड्स में नामकरण पैरामीटर्स

पहले तर्क का नाम किसी फैक्टरी विधि या इनिशियलाइज़र के नामकरण में शामिल नहीं होना चाहिए।

उदाहरण:

factory.makeObject(key: value)

के बजाय:

factory.makeObject(havingProperty: value)

साइड इफेक्ट्स के अनुसार नामकरण

  • साइड इफेक्ट्स (उत्परिवर्तन कार्यों) के साथ क्रियाओं को form- साथ उपसर्ग क्रियाओं या संज्ञाओं का नाम दिया जाना चाहिए-
  • दुष्प्रभाव (nonmutating कार्यों) के बिना कार्य प्रत्यय के साथ संज्ञाएं या क्रियाओं का उपयोग करके नाम दिया जाना चाहिए -ing या -ed
उदाहरण: म्यूटिंग कार्य:
print(value)
array.sort()                 // in place sorting
list.add(value)              // mutates list
set.formUnion(anotherSet)    // set is now the union of set and anotherSet

गैर-कार्यशील कार्य:

let sortedArray = array.sorted()     // out of place sorting
let union = set.union(anotherSet)    // union is now the union of set and another set

बूलियन फ़ंक्शन या चर

बुलियन को शामिल करने वाले बयानों को अभिकथन के रूप में पढ़ा जाना चाहिए।

उदाहरण:

set.isEmpty
line.intersects(anotherLine)

नामकरण प्रोटोकॉल

  • संज्ञाओं का उपयोग करके किसी चीज़ का नाम क्या होना चाहिए, इसका वर्णन करने वाले प्रोटोकॉल।
  • क्षमताओं का वर्णन प्रोटोकॉल होना चाहिए -able , -ible या -ing प्रत्यय के रूप में।
उदाहरण:
Collection        // describes that something is a collection
ProgressReporting // describes that something has the capability of reporting progress
Equatable         // describes that something has the capability of being equal to something

प्रकार और गुण

प्रकार, चर और गुणों को संज्ञा के रूप में पढ़ा जाना चाहिए।

उदाहरण:

let factory = ...
let list = [1, 2, 3, 4]

पूंजीकरण

प्रकार और प्रोटोकॉल

प्रकार और प्रोटोकॉल नाम एक बड़े अक्षर से शुरू होने चाहिए।

उदाहरण:

protocol Collection {}
struct String {}
class UIView {}
struct Int {}
enum Color {}

बाकि सब कुछ...

चर, स्थिरांक, फ़ंक्शंस और एन्यूमरेशन मामलों को लोअरकेस अक्षर से शुरू करना चाहिए।

उदाहरण:

let greeting = "Hello"
let height = 42.0

enum Color {
    case red
    case green
    case blue
}

func print(_ string: String) {
    ...
}

टेढ़े मेढ़े संयुक्त शब्द:

सभी नामकरण को उपयुक्त ऊंट मामले का उपयोग करना चाहिए। टाइप के लिए अपर ऊंट केस / प्रोटोकॉल नाम और बाकी सब के लिए कम ऊंट केस।

ऊपरी ऊंट का मामला:

protocol IteratorType { ... }

निचला ऊंट का मामला:

let inputView = ...

लघुरूप

संक्षिप्त रूप से उपयोग नहीं किया जाना चाहिए जब तक कि आमतौर पर उपयोग नहीं किया जाता है (जैसे URL, ID)। यदि एक संक्षिप्त नाम का उपयोग किया जाता है, तो सभी अक्षरों का एक ही मामला होना चाहिए।

उदाहरण:

let userID: UserID = ...
let urlString: URLString = ...


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow