《从零開始学Swift》学习笔记(Day 59)——代码排版
原创文章,欢迎转载。转载请注明:关东升的博客
代码排版包括: 空行、空格、断行和缩进等内容。代码排版内容比較多工作量非常多。可是非常重要。
空行
空行将逻辑相关的代码段分隔开。以提高可读性。
下列情况应该总是加入空行:
类型声明之前。
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)——代码排版的更多相关文章
- 关东升的《从零開始学Swift》即将出版
大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...
- 从零開始学Swift之Hello World进化版
上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...
- 《从零開始学Swift》学习笔记(Day5)——我所知道的标识符和keyword
Swift 2.0学习笔记(Day5)--我所知道的标识符和keyword 原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和keyword,一直没有好好的总结,就是这 ...
- 《从零開始学Swift》学习笔记(Day 1)——我的第一行Swift代码
Swift 2.0学习笔记--我的第一行Swift代码 原创文章,欢迎转载. 转载请注明:关东升的博客 当第一次看到以下代码时我石化了.这些代码是什么东东?单词拼出来的? import Foun ...
- 《从零開始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理
原创文章,欢迎转载. 转载请注明:关东升的博客 在Swift原生数据类型.Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,尽管是大部分是能够零开销桥接,零开 ...
- 《从零開始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器
原创文章,欢迎转载.转载请注明:关东升的博客 实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,演示样例代码例如以下: butt ...
- 《从零開始学Swift》学习笔记(Day 57)——Swift编码规范之凝视规范:文件凝视、文档凝视、代码凝视、使用地标凝视
原创文章.欢迎转载.转载请注明:关东升的博客 前面说到Swift凝视的语法有两种:单行凝视(//)和多行凝视(/*...*/).这里来介绍一下他们的使用规范. 1.文件凝视 文件凝视就在每个文件开头加 ...
- 《从零開始学Swift》学习笔记(Day60)——Core Foundation框架
创文章,欢迎转载.转载请注明:关东升的博客 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.尽管在Swift中调用这样的C语 ...
- 《从零開始学Swift》学习笔记(Day 52)——Cocoa错误处理模式
原创文章,欢迎转载. 转载请注明:关东升的博客 Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式採用Cocoa框架错误处理模式,到如 ...
- 《从零開始学Swift》学习笔记(Day48)——类型检查与转换
原创文章,欢迎转载.转载请注明:关东升的博客 继承会发生在子类和父类之间,是一系列类的继承关系. 比如:Person是类层次结构中的根类.Student是Person的直接子类.Worker是Pers ...
随机推荐
- Redis封装之List
/// <summary> /// Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// Redis内部的很多实现,包括发 ...
- pigofzhou的巧克力棒
Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n ...
- 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 ...
- ES6学习笔记(三)字符串的扩展
ES6 加强了对 Unicode 的支持,并且扩展了字符串对象. 1.字符的Unicode表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码 ...
- 快速安装Nginx及配置详解(未完待续)
导读: Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,从2007年被德国人开发出来后可以说在市场的占有率一路飙升,因为它支持高并 ...
- struts2的acton标签中的ignoreContextParams属性和param子元素的冲突
<s:action ignoreContextParams="true" executeResult="true" name="login&qu ...
- udacity android 学习笔记: lesson 4 part a
udacity android 学习笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- Tomcat会话超时时怎样记录操作日志,满足安全审计要求
众所周知.在实际的Web应用程序中,会话管理一般都採用Web容器会话管理功能. 使用Tomcat做Webserver也是如此,并且从安全的角度考虑,尽量避免去更改和干预Web容器的会话管理功能. To ...
- 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 ...
- Linux Unix shell 编程指南学习笔记(第二部分)
第七章 正則表達式介绍 匹配行首与行尾 匹配数据集 职匹配字母和数字 句点 "." 匹配随意单字符. ^,在行首 匹配字符串或字符序列,如查询当前文件夹下的全部文件夹: ls - ...