2016-12-07 130 views
1

我一直在閱讀API Design GuidelinesSwift以及一些關於命名我在問題標題中提到的實體的帖子,但我仍然不清楚這一點。我正在開發Swift 3布爾值,常量和@IBAction選擇器的Swift命名約定?

  1. 布爾變量的前綴應該是is-,其中has-,或者兩個前綴都合適?
  2. 返回方法Bool選擇器也應該加上前綴is/has
  3. 例如,您爲避免幻數而定義的常量變量應以k開頭? (例如,kMaxLength)。我認爲這是Objective-C的約定,是否也是Swift
  4. @IBAction選擇器的名稱應該引用觸發動作的控件,還是它所做的任務? (例如:doneButtonTapped VS validateInput
+0

這是相當見仁見智,但如果你想正確地遵循的準則:1個+ 2,是的,沒有3,4任務 – Moritz

+0

文件總是一味的。理解某些東西的最好方法是看實現。我們可以檢查Swift庫並找到最佳實踐。而對於'@ IBAction',我個人覺得你提到的方式是正確的,並且還有指導原則。 –

+0

關於數字4:我會考慮實現兩種方法:'doneButtonTapped'接收事件並委託給方法'validateInput'。 – Raginmari

回答

1

夫特常規命名慣例都可以在這裏https://swift.org/documentation/api-design-guidelines/#general-conventions

  • 的布爾方法和屬性用途應該斷言時所述用途是讀到 接收機 nonmutating,例如x.isEmptyline1.intersects(line2)
  • 其他類型,屬性,變量和常量的名稱應該讀作名詞。
+0

例如,代表待辦事項的類型如何?它可能有一個標誌,指示任務是否已經「完成」。該物業應該是可寫的。在這種情況下,我有兩個選擇:寫'item.isDone = true',其中用法是** not **「nonmutating」,或者寫'item.done = true',在這種情況下getter將是'let isDone = item.done'。你怎麼看? – Raginmari

+0

假設我決定命名屬性「完成」。使用「is」前綴查詢屬性成爲可能的一種方法是擴展類型:'var isDone:Bool {return done}'。這個明顯的缺點是有兩種不同的方式來讀取同一個屬性。 – Raginmari