原创文章,欢迎转载。转载请注明:关东升的博客

代码排版包括: 空行、空格、断行和缩进等内容。代码排版内容比較多工作量非常多。可是非常重要。

空行

空行将逻辑相关的代码段分隔开。以提高可读性。

下列情况应该总是加入空行:

  • 类型声明之前。

  • import语句前后。

  • 两个方法或函数之间。

  • 块凝视或单行凝视之前。

  • 方法或函数内的两个逻辑段之间,用以提高可读性。

  • 一个源文件的两个片段之间。

空格

在代码中有些位置是须要有空格的,这个工作量也是非常大的。下列是使用空格的规范:

1.赋值符号“=”前后有一个空格。var或let与标识符之间有一个空格。全部的二元运算符。应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格。如:++、--等。示比例如以下。

var a = 10
var c = 10
a += c + d

2. 小左括号“(”之后。小右括号“)”之前不要有空格。示比例如以下。

a = (a + b) / (c * d)

3. 大左括号“{”之前有一个空格。示比例如以下。

while a == d {

    n++

}

4. 在方法或函数參数之前间有一个空格,參数冒号与数据类型之间有一个空格。

推荐使用:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    ...

}

不推荐使用:

func tableView ( tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath ) {

    ...

}

断行

一行代码的长度尽量避免超过80个字符。为了便于查看是否一行代码超出80个字符。非常多IDE开发工具都能够在编辑窗体设置显示80行竖线。在Xcode中设置过程是打开菜单Xcode→Preferences。选择Text Editing标签,选中Show→Page guideat column。

因为有的代码比較长须要断行,能够根据例如以下一般规范断开:

  • 在一个逗号后面断开。

  • 在一个操作符前面断开,要选择较高级别运算符断开,而非较低级别运算符断开。

  • 新的一行应该与上一行缩进两个级别(8个空格)

缩进

4个空格常被作为缩进排版的一个单位,在开发时候使用制表符进行缩进,尽管默认情况下一个制表符等于8个空格。可是在不同的IDE工具中可能设置的一个制表符与空格相应个数会有所不同。在Xcode中默认是一个制表符相应4个空格。我们能够在Xcode中打开菜单Xcode→Preferences,选择Text Editing→Indentation标签,能够在Tab width中进行设置。

缩进能够根据例如以下一般规范:

  • 在函数、方法、闭包、控制语句、计算属性等包括大括号“{}”代码块中。代码块中的内容与首行缩进一个级(4个空格)。

  • 假设是if语句中条件表达式的断行。那么新的一行应该与上一行缩进两个级别(8个空格),再往后的断行要与第一次的断行对齐。

欢迎关注关东升新浪微博@tony_关东升。

关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 ​
很多其它精品iOS、Cocos、移动设计课程请关注智捷课堂官方站点:http://www.zhijieketang.com
智捷课堂论坛站点:http://51work6.com/forum.php

《从零開始学Swift》学习笔记(Day 59)——代码排版的更多相关文章

  1. 关东升的《从零開始学Swift》即将出版

    大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...

  2. 从零開始学Swift之Hello World进化版

    上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...

  3. 《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword

     Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword   原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这 ...

  4. 《从零開始学Swift》学习笔记(Day 1)——我的第一行Swift代码

     Swift 2.0学习笔记--我的第一行Swift代码 原创文章,欢迎转载. 转载请注明:关东升的博客 当第一次看到以下代码时我石化了.这些代码是什么东东?单词拼出来的? import Foun ...

  5. 《从零開始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理

    原创文章,欢迎转载. 转载请注明:关东升的博客 在Swift原生数据类型.Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,尽管是大部分是能够零开销桥接,零开 ...

  6. 《从零開始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

    原创文章,欢迎转载.转载请注明:关东升的博客 实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,演示样例代码例如以下: butt ...

  7. 《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视

    原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加 ...

  8. 《从零開始学Swift》学习笔记(Day60)——Core Foundation框架

    创文章,欢迎转载.转载请注明:关东升的博客   Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.尽管在Swift中调用这样的C语 ...

  9. 《从零開始学Swift》学习笔记(Day 52)——Cocoa错误处理模式

    原创文章,欢迎转载. 转载请注明:关东升的博客 Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式採用Cocoa框架错误处理模式,到如 ...

  10. 《从零開始学Swift》学习笔记(Day48)——类型检查与转换

    原创文章,欢迎转载.转载请注明:关东升的博客 继承会发生在子类和父类之间,是一系列类的继承关系. 比如:Person是类层次结构中的根类.Student是Person的直接子类.Worker是Pers ...

随机推荐

  1. Redis封装之List

    /// <summary> /// Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// Redis内部的很多实现,包括发 ...

  2. pigofzhou的巧克力棒

    Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n ...

  3. ORA-12012 Error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_<NN> in 12.2.0 Database

    报错如下:ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_88"ORA-2000 ...

  4. ES6学习笔记(三)字符串的扩展

    ES6 加强了对 Unicode 的支持,并且扩展了字符串对象. 1.字符的Unicode表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码 ...

  5. 快速安装Nginx及配置详解(未完待续)

    导读: Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,从2007年被德国人开发出来后可以说在市场的占有率一路飙升,因为它支持高并 ...

  6. struts2的acton标签中的ignoreContextParams属性和param子元素的冲突

    <s:action ignoreContextParams="true" executeResult="true" name="login&qu ...

  7. udacity android 学习笔记: lesson 4 part a

    udacity android 学习笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  8. Tomcat会话超时时怎样记录操作日志,满足安全审计要求

    众所周知.在实际的Web应用程序中,会话管理一般都採用Web容器会话管理功能. 使用Tomcat做Webserver也是如此,并且从安全的角度考虑,尽量避免去更改和干预Web容器的会话管理功能. To ...

  9. AVEVA RVM to 3D PDF

    AVEVA RVM to 3D PDF eryar@163.com RvmTranslator 3D PDF plugin can convert PDMS RVM files to 3D PDF w ...

  10. Linux Unix shell 编程指南学习笔记(第二部分)

    第七章  正則表達式介绍 匹配行首与行尾 匹配数据集 职匹配字母和数字 句点 "." 匹配随意单字符. ^,在行首 匹配字符串或字符序列,如查询当前文件夹下的全部文件夹: ls - ...