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

空行

空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是添加空行:

  • 类型声明之前。

  • import语句前后。

  • 两个方法或函数之间。

  • 块注释或单行注释之前。

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

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

空格

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

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

  1. var a = 10
  2. var c = 10
  3. a += c + d

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

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

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

  1. while a == d {
  2. n++
  3. }

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

推荐使用:

  1. func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  2. ...
  3. }

不推荐使用:

  1. func tableView ( tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath ) {
  2. ...
  3. }

断行

一行代码的长度尽量避免超过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个空格),再往后的断行要与第一次的断行对齐。

swift代码排版-参考的更多相关文章

  1. 《从零开始学Swift》学习笔记(Day 59)——代码排版

    原创文章,欢迎转载.转载请注明:关东升的博客 代码排版包括: 空行.空格.断行和缩进等内容.代码排版内容比较多工作量很多,但是非常重要. 空行 空行将逻辑相关的代码段分隔开,以提高可读性.下列情况应该 ...

  2. 《从零開始学Swift》学习笔记(Day 59)——代码排版

    原创文章,欢迎转载.转载请注明:关东升的博客 代码排版包括: 空行.空格.断行和缩进等内容.代码排版内容比較多工作量非常多.可是非常重要. 空行 空行将逻辑相关的代码段分隔开.以提高可读性. 下列情况 ...

  3. 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

    在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...

  4. LaTeX 算法代码排版 --latex2e范例总结

    LaTeX 写作: 算法代码排版 --latex2e范例总结 latex2e 宏包的使用范例: \usepackage[ruled]{algorithm2e}                     ...

  5. 编写Swift代码的其他工具

    Swift程序不能在Windows其他平台编译和运行,有人提供了一个网站swiftstub.com,左栏是代码编辑窗口,右栏是运行结果窗口.可以在任何平台下编译和运行Swift程序.

  6. Cocos2D-ObjC:在RPG游戏中混合Swift代码

    我之前写过一个RPG游戏<<熊猫之魂 SoulOfPanda>> 编译器使用的是SpriteBuilder,很好很强大!全部代码都由Objc完成,现在想尝试一下在其中混入Swi ...

  7. 在 OC 中调用 Swift 代码

    1.在 Objective-C 项目中使用 Swift 代码 1)在 OC 项目中创建 .Swift 文件,文件中的格式为其本有的格式. 2)Xcode 提示是否创建 Objective-C brid ...

  8. L3-019 代码排版 (30 分)

    某编程大赛中设计有一个挑战环节,选手可以查看其他选手的代码,发现错误后,提交一组测试数据将对手挑落马下.为了减小被挑战的几率,有些选手会故意将代码写得很难看懂,比如把所有回车去掉,提交所有内容都在一行 ...

  9. 北航操作系统实验2019:Lab4-1代码实现参考

    北航操作系统实验2019:Lab4-1代码实现参考 部分实现参考自Github前辈们的项目,经过一定程度的勘误. 如果这份代码中存在任何问题或错误,请务必不吝在评论区指出. Exercise 4.1 ...

随机推荐

  1. 服务器端javascript——Rhino和Node

    Node: Node是v8 javasript解析器的一个特别版本,侧重于异步I/O,网络和HTTP 入门见:http://www.cnblogs.com/wishyouhappy/p/3647037 ...

  2. [Java] Java 技术和 JVM 基础

    Java 由 Sun 公司在 1995 首次发布,既是一门编程语言,也是一个计算平台. Java 运行时版本 Java Runtime Edition 当你下载 Java 完时候,你会得到一个 Jav ...

  3. PHP学习之[第02讲]PHP5.4 Apache Mysql 搭配与多站点配置详解

    小编用的是MAC系统,SO安装的是MAMP 知识点: 1.配置多站点:httpd.conf打开httpd-vhosts.conf,并在httpd-vhosts.conf设置多IP及端口指向,最后修改/ ...

  4. 设计模式19---设计模式之状态模式(State)(行为型)

    1.场景模拟 考虑一个在线投票的应用,分为四种情况 正常投票 正常投票以后还继续重复投票 用户恶意投票 黑名单用户 2.不用模式的解决方案 package demo17.state.example1; ...

  5. Android Application对象必须掌握的七点

    1:Application是什么?           Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 ap ...

  6. python批量改动指定文件夹文件名称

    这小样例仅仅要是说明用python怎么批量改动指定文件夹的文件名称: 记得要把脚本跟改动的文件放在同一个文件夹下 #encoding:utf-8 import os import sys files ...

  7. HDU1007 Quoit Design 【分治】

    Quoit Design Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  8. make文件中静态连接库在command里面的位置

    linux软件第一次调用动态连接库的时候要延迟几秒,怀疑在突然掉库的时候动态库加载耗费了时间,所以造成延时,遂改为静态库方式,原来的makefile文件是 testmac:         cp $( ...

  9. ubuntu下mysql中文乱码问题

    本来就是想弄个网页往数据库里添加数据的,然后就发现了mysql的中文乱码问题,弄了半天解决方法如下: 首先停mysql服务,编辑配置文件my.cnf $ sudo stop mysql $sudo v ...

  10. Asp.Net MVC 页面代码压缩筛选器-自定义删除无效内容

    Asp.Net MVC 页面代码压缩筛选器 首先定义以下筛选器,用于代码压缩. /*页面压缩 筛选器*/ public class WhiteSpaceFilter : Stream { privat ...