用Markdown为Swift代码加上注释

一般我们写程序时,都会为代码加上一些注释,一个是为了给别人看,另一个原因就是如果项目越写越大时,可能就忘了之前写的函数或类是什么作用了,所以养成边写代码编写注释甚至是实现功能前就加上注释的习惯是很重要的。
那么,在Swift里是怎么为代码加注释,加了注释又会有什么效果呢。 大部分语言的单行注释是两个/,多行注释是/*号。Swift当然也支持这种注释。


// 单行注释
/*
 多行注释
*/

普通单行注释和多行注释

但是在Swift里,除了上面的两种注释外,还支持使用Markdown编写注释,但是如果要让Markdown编写的注释可以在XCode的Quick Help里可以展示,则单行注释需要使用三个/,多行注释开头需要使用/**,结尾*/。否则,注释里写的Markdown是不会被识别出来的,在Quick Help里也无法查看,

/// 单行注释,支持*Markdown*
/**
    多行注释
*/
支持Markdown的单行注释(注意图中的markdown已经是斜体了)
支持Markdown的多行注释

单词分隔符

在注释中还定义了一些特殊的文字分隔符作为注释的标记,比如下图中可以给方法备注上作者。需要注意的是,-前后需要空格, 另外Author:中的Author单词对大小写无严格规定,但是一般按照大驼峰命名规则写。也就是单词首字母大写。

特殊插图编号示例

支持的单词分隔符有:(要获取最新的可以看苹果官方文档):

Attention
Author
Authors
Bug
Complexity
Copyright
Date
Experiment
Important
Invariant
Note
Parameter
Parameters
Postcondition
Precondition
Remark
Returns
Requires
SeeAlso
Since
Throws
ToDo
Version
Warning

用法(-也可用+*代替)

/**
 - Attention: description 
 - Author: author name 
 - Authors: author name 
 - Bug: this is a bug, fix it.
 */
    /**
     Play a song.
     
     - parameter song: The song you want play.
     */
    func play(song songName: String) {
    
    }
参数效果(这里不管用外部参数名还是内部参数名,注释中都会用内部参数名做显示)
    /**
     Send a message to someone.
     
     - parameter message: message want send.
     - parameter user: send message to user.
    */
    func send(msg message: String, to user: String) {
    
    }
多参数注释写法1

由多个参数时除了分行写parameter外,还有下面这种写法:

    /**
     Send a message to someone.
     
     - parameters:
        - message: message want send.
        - user: send message to user.
     */
    func send(msg message: String, to user: String) {
        
    }
    

需要注意的是,parameters 下面写的参数需要往里缩进一格(加一个tab或者两个空格都可以)

多参数写法二
    /**
     
     - parameters:
        - min: min number
        - max: max number
     - returns: 
        number between min and max
     */
    func returnsExample(min: Int, max: Int) -> Int{
        // TODO: - finish it
        return 0
    }
注释中注明返回值意义

注释中加入无序列表

    /**
     An example of using a *bulleted list*
     
     * item 1
     * item 2
        * item 2.1
     * item 3
     */
    func bulletedListExample() {
    
    }
无序列表

有序列表

    /**
     An example of using a *numbered list*
     
     1. Fruit
        1. Apple
        2. Banana
     2. Vegetable
        1. Cabbage
     */
    func numberedListExample() {
    
    }
有序列表

在注释中加上示例代码

方式1: 将示例代码缩进

    /**
     An example of using a *code block*
     
     A loop to print each character on a seperate line
     
         for s in str.characters {
            print(s)
         }
     
     */
    func codeBlockExample(_ str: String) {
        for s in str.characters {
            print(s)
        }
    }
注释中加入示例代码方式1

方式二:

注释中加入示例代码方式二

给注释中的文字加粗或重点标注

    /**
     
     Markup uses simple character-based delimiters to mark formatted text in *playgrounds* and in *Quick Help* for Swift symbols.
     
     
     Some of the delimiters are used for both rendered `playground` documentation and in `Quick Help`. Other delimiters are used with _either playgrounds or with Quick Help_. The documentation for each delimiter **includes** information __on where it can be used__.
     */
    func importantCharacters(){
    
    }
代码中文字重点标注

注释中插入链接

    /**
     An example of using the seealso field
     
     - Note:
     [SeeAlso](https://developer.apple.com/library/content/documentation/Xcode/Reference/xcode_markup_formatting_ref/Links.html)
     */
    func linksExample() {
    
    }
注释中插入超链接

总结

注释算是项目中非常重要的内容,这里总结的只是我觉得在XCode中写代码会比较常用的注释,其实官网还有一些强大的注释是给Playground用的,这里就不总结了,自己去看吧。在这次总结里面我从苹果的文档中尝试失败的有两个,一个是SeeAlso,另一个是在注释里插入网络图片,大家可以尝试一下,欢迎留言指正。另外,可以使用快捷键cmd+opt+/直接在方法或属性上插入注释,如果快捷键没用,可能是被当前其他应用给占据了,可以把快捷键在XCode中修改为其他自己熟悉的快捷键。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,093评论 4 62
  • 偶然间,看到简书作者晏小鱼写雪小禅的文章: “雪小禅,一个野生的女子,腌制时间,煮字疗饥。好有趣的女子,喜欢朴素的...
    一世福缘阅读 2,896评论 90 162
  • 今天其实是开店的第n天了,老婆依旧是每天日常板着个脸,对于店,她没有过多的想法,只是想早点结束这一切,回到原本的休...
    阿哇乐阅读 252评论 0 0