Swift注釋命名

第一次寫東西發(fā)布到網(wǎng)絡(luò)上杨箭,還是有點(diǎn)小激動(dòng)的。 不久之前加入了一個(gè)讀書分享群乙漓。 里面很多人都說讀了一定要總結(jié)出來级历,那樣才能讓自己學(xué)到的更多。于是乎叭披,我有了寫東西的沖動(dòng)寥殖。 最近一直在學(xué)習(xí)Swift,現(xiàn)在就寫寫在Swift里面本人理解的注釋風(fēng)格涩蜘。

注釋:

有一個(gè)眾所周知的工具 (VVDocument)

// 單行注釋

/// 單行注釋(三個(gè)斜桿的單行注釋可以生成注釋文檔嚼贡, 如果在開發(fā)中建議使用)

//!< 單行注釋 (一般在枚舉類型里面在case后面使用)

/*! 單行注釋 */

/* 多行注釋 */

/** 多行注釋 */

///單行注釋--尾行注釋一般在枚舉中使用
enum Test: Int {   
  web =1,//!<   web類型    
  shop =2,//!<  商鋪活動(dòng)  
};

文檔注釋

在注釋里面使用**包括好的文字會(huì)粗體顯示

Parameter 參數(shù)說明關(guān)鍵字

Throws: 拋出異常關(guān)鍵字

Returns: 返回對(duì)象

/// There are a few keywords Xcode can recognize automatically. The format is like **- <Keyword> -**:. The most common use one is **Parameter**, **Throws** and **Returns**.
/// **參數(shù)第一種寫法**:
/// - Parameter item1: This is item1
/// - Parameter item2: This is item2
/// **參數(shù)第二種寫法**
/// - Parameters:
///   - item1: This is item1
///   - item2: This is item2
/// - Throws: `MyError.BothNilError` if both item1 and item2 are nil.
/// - Returns: the result string.
func showKeywordsCommentsWithItem1(item1: AnyObject?, item2: AnyObject?) throws -> String {
    
    if item1 == nil && item2 == nil{
        throw MyError.BothNilError
    }
    
    let text = "There are a few keywords Xcode can recognize automatically."
    return text
}

/// Some meta information can be added into the comment documentation using **author**, **authors**, **copyright**, **date**, **since**, **version**
///
/// This is an example
/// - Author: xixiaoyu
/// - Authors: All the geeks in the world:)
/// - Copyright: xixiaoyu@2016
/// - Date: 2016-07-22
/// - Since: iOS 6
/// - Version: 1.0.0
func test() -> String{
    let haha = "Hello Swift"
    return haha
}

超鏈接

空格只是為了顯示,在項(xiàng)目注釋中不需要空格
在注釋中使用[] ()中括號(hào)里面是跳轉(zhuǎn)名稱同诫,小括號(hào)里面是URL, 當(dāng)我們點(diǎn)擊xxx的時(shí)候 會(huì)在默認(rèn)的瀏覽器中打開url所指定的網(wǎng)頁粤策。 例如:
Whelcome to imooc.

在注釋中添加顯示圖片! [] () 中括號(hào)里面是logo名稱, 小括號(hào)里面是logo的URL误窖。
例如:


Swift logo
Swift logo

關(guān)鍵字

TODO

在開發(fā)的過程中遇到一個(gè)問題的時(shí)候叮盘,有可能我們需要放哪里過會(huì)再來處理,那我們可以使用關(guān)鍵字 TODO來進(jìn)行標(biāo)記

MARK

在一個(gè)文件里面可以使用MARK來對(duì)不同的方法進(jìn)行分類區(qū)分

FIXME

FIXME 標(biāo)記

命名規(guī)則

使用可讀的駝峰命名法去給類 方法 變量 命名霹俺。 class struct protocol enum 應(yīng)使用大寫柔吼,變量名使用小寫。

/// 變量常量命名
let testCount = 100

/// 類命名
class TestClass { 
}

/// 結(jié)構(gòu)體命名
struct TestStruct {
}

/// 枚舉命名 使用首字母小寫的駝峰命名法給每個(gè)case命名
enum TestEnum {
  case test1
  case test2
} 
/// 協(xié)議命名遵循Apple's API DesignGuidelines使用名詞來描述, 如 ing able ible, 
protocol Prizable{
    func isPrizable() -> Bool
}

protocol Moving {
  func isMoveing() -> Bool
}

空格 空行

  • 空格:
  1. 在運(yùn)算符前后空格 let p = 3 + 4
  2. 逗號(hào)后面空格丙唧。
  3. 左大括號(hào)前空格 (右大括號(hào)另起一行)
    func test(number: Int) {
    }
  4. 定義常量愈魏、變量時(shí)冒號(hào)后面空格, 冒號(hào)前面頂著常量變量。 let test: Int = 2
  5. 必包的大括號(hào)里面包含的內(nèi)容需要前后空格想际。
    func ==(s1:Student,s2:Student) -> Bool { return s1.score == s2.score }
  • 空行:
  1. 在右大括號(hào)之后如果還有方法需要空行培漏,如果沒有則無需空行
  2. 代碼塊縮進(jìn)原則
struct Student: CustomStringConvertible, Equatable, Comparable, Prizable {
    var name: String
    var score: Int
    var description: String{
        return name + "Score: " + String(score)
    }
    
    func isPrizable() -> Bool {
        return score >= 60
    }
}

推薦

if person.isHave {
  // Do
} else {
  // Do else
}

不推薦

if (user.isHappy ) 多余空格
{                  換行位置不對(duì)
  // Do something
}
else {
  // Do something else
}

類型定義 (轉(zhuǎn)自: )

盡可能的使用swift自帶類型,在必須的時(shí)候才做橋接 沼琉,String-> NSString , Set->NSSet

能使用let盡量使用北苟, 一般情況下不建議到處使用var

不要定義常量變量使用關(guān)鍵字
盡量let foo = something 而非 var for = somthing

let-有保障 并且它的值的永遠(yuǎn)不會(huì)改變,對(duì)同事也是個(gè) 清晰的標(biāo)記打瘪,對(duì)于它的用法友鼻,之后的代碼可以做個(gè)強(qiáng)而有力的推斷傻昙。更容易明白代碼的含義。否則的話一旦你用了 var彩扔,還要去考慮值會(huì)不會(huì)改變妆档,這時(shí)候你就不得不人肉去檢查。

這樣虫碉,無論何時(shí)你看到 var贾惦,就假設(shè)它會(huì)變,并找到原因敦捧。

類型推斷

Swift是高安全性語言须板,能讓系統(tǒng)推斷的類型不要顯示指明, 空的字典和空數(shù)組的類型 使用類型標(biāo)記 加強(qiáng)語義
如:

/// 推薦
let testString = "Hello"
var names: [String] = []
var lookup: [String: Int] = [:]
/// 不推薦
let testString: String = "Hello"

參考自

GitHub
獻(xiàn)給寫作者的 Markdown 新手指南
Swift-Code-Style

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兢卵,隨后出現(xiàn)的幾起案子习瑰,更是在濱河造成了極大的恐慌,老刑警劉巖秽荤,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甜奄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡窃款,警方通過查閱死者的電腦和手機(jī)课兄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晨继,“玉大人烟阐,你說我怎么就攤上這事□馍裕” “怎么了曲饱?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長珠月。 經(jīng)常有香客問我,道長楔敌,這世上最難降的妖魔是什么啤挎? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮卵凑,結(jié)果婚禮上庆聘,老公的妹妹穿的比我還像新娘。我一直安慰自己勺卢,他們只是感情好伙判,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黑忱,像睡著了一般宴抚。 火紅的嫁衣襯著肌膚如雪勒魔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天菇曲,我揣著相機(jī)與錄音冠绢,去河邊找鬼。 笑死常潮,一個(gè)胖子當(dāng)著我的面吹牛弟胀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喊式,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼孵户,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了岔留?” 一聲冷哼從身側(cè)響起延届,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贸诚,沒想到半個(gè)月后方庭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酱固,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年械念,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片运悲。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡龄减,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出班眯,到底是詐尸還是另有隱情希停,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布署隘,位于F島的核電站宠能,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏磁餐。R本人自食惡果不足惜违崇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诊霹。 院中可真熱鬧羞延,春花似錦、人聲如沸脾还。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鄙漏。三九已至嗤谚,卻和暖如春棺蛛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呵恢。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工鞠值, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渗钉。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓彤恶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鳄橘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子声离,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于 Swift 重要這個(gè)文檔所包含的準(zhǔn)備信息, 是關(guān)于開發(fā)的 API 和技術(shù)的。這個(gè)信息可能會(huì)改變, 根據(jù)這個(gè)文...
    無灃閱讀 4,305評(píng)論 1 27
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出瘫怜,用來撰寫 OS X 和 iOS 應(yīng)用程序 ...
    大L君閱讀 3,224評(píng)論 3 25
  • 2014年的蘋果全球開發(fā)者大會(huì)(WWDC)术徊,當(dāng)Craig Federighi向全世界宣布“We have new ...
    yeshenlong520閱讀 2,294評(píng)論 0 9
  • 花了周末的時(shí)間翻譯raywenderlich.com的Swift編碼規(guī)范(傳送門), 原文是針對(duì)寫作時(shí)Swift代...
    豆志昂揚(yáng)閱讀 7,608評(píng)論 2 43
  • 備戰(zhàn)中考鲸湃,我們?cè)诼飞希?) 一群口是心非的老師 ——中考倒計(jì)時(shí)38天 5.17 謊言有時(shí)就是一劑緩釋...
    小杜之母閱讀 868評(píng)論 0 1