美文网首页
Swift--规范编程

Swift--规范编程

作者: 优雅的步伐 | 来源:发表于2020-07-06 17:51 被阅读0次
  • 命名规范
  • 注释规范
  • 声明
  • 代码排版

命名规范

常用命名方法
  • 匈牙利命名,一般只是命名变量,原则是: 变量名 = 类型前缀 + 描述,如bFoo表示布尔类型变量,pFoo表示指针类型变量。匈牙利命名还是有一定争议的,在Swift编码规范基本不被采用。

  • 驼峰命名(Camel-Case),又称“骆驼命名法”,是指混合使用大小写字母来命名。驼峰命名又分为小驼峰法和大驼峰法。小驼峰法就是第一个单词是全部小写,如myRoomCount;大驼峰法是第一个单词的首字母也大写,如ClassRoom。

Swift编码命名规范
  • 对类、结构体、枚举和协议等类型的命名应该采用大驼峰法,如 SplitViewController。

  • 文件名采用大驼峰法,如BlockOperation.swift。

  • 对于扩展文件,有时扩展定义在一个独立的文件中,用“原始类型名 + 扩展名”作为扩展文件名,如NSOperation + Operations.swift。

  • 变量和属性采用小驼峰法,如studentNumber。

  • 常量采用大驼峰法, 如MaxStudentNumber。

  • 枚举成员与常量类似,采用大驼峰法,如ExecutionFailed。

  • 函数和方法采用小驼峰法,如balanceAccount、isButtonPressed等。

注释规范

注释规范有:

  • 文件规范
  • 文档注释
  • 代码注释
  • 使用地标注释
文件注释

文件注释就是在每一个文件开头添加注释。文件注释通常包括如下信息:版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容和作用等。
如下图:


image.png
文档注释

文档注释是指这种注释内容能够生成API帮助文档。文档注释主要对类型、属性、方法或函数等进行注释。

  • 单行文档注释(///)
  • 多行文档注释(/*.../)

如下图:


image.png
代码注释

程序代码中处理文档注释还需要在一些关键的地方添加代码注释,文档注释一般是给一些看不到源代码的人看的帮助文档,而代码注释是给阅读源代码的人参考的。

  • 单行注释( // )
  • 多行注释 ( /.../ )
使用地标注释
  • MARK, 用于方法或函数的注释;
  • TODO, 表示这里的代码有没有完成或者还要处理;
  • FIXME,表示这里修改了代码。

声明

  • 变量或常量声明
  • 属性声明

1、变量或常量声明时,每行声明变量或常量的数量推荐一行一个,因为这样有利于写注释。

推荐使用:

let level = 0
var size = 10

不推荐使用:

let level,   le2,   le3 = 0;   var size = 10

2、还有变量或常量的数据类型,如果有可能应尽量采用类型推断,这样代码更简洁。
推荐使用:

let level = 0
var size = 10

不推荐使用:

let level: Int = 0
var size: Int = 10

3、 如果不是默认数据类型,我们需要声明变量或常量的数据类型,示例代码如下:

let level: Int8 = 0
var size: Int64 = 10

4、指定数据类型时需要使用冒号(:),变量或常量与冒号之间没有空格,冒号和数据类型之间要有一个空格。示例代码如下:

推荐使用:

let level: Int8 = 0
var size: Int64 = 10

不推荐使用:

let level : Int8 = 0
var size: Int64=10

5、使用数据类型时应尽可能使用Swift本身的数据类型,例如:
推荐使用:

let width = 120.0
let widthString = "Hello."
var deviceModels: [String]
var employees: [Int: String]

不推荐使用:

let width:  NsNumber = 120.0
let widthString: NSString = "Hello."
var deviceModels: NSArray
var employees: NSDictionary
  • 如果是存储属性,声明规范与变量或常量声明的规范一样。
  • 如果是计算属性,声明规范类似于代码块,特别是在使用只读计算属性时,应尽量省略get语句。

推荐使用:

var fullName: String  {
    return firstName + "." + lastName
}

不推荐使用:

var fullName: String  {
     get {
           return  firstName  +  "."  +  lastName
      }
}

代码排版

  • 空行
  • 空格
  • 断行
  • 缩进
空行
  • 类型声明之前
  • import语句前后
  • 两个方法或函数之间
  • 块注释或单行注释之前
  • 一个源文件的两个片段之间
空格

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

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

2、(2)小左括号“("之后,小右括号“)”之前不应该有空。
示例如下:

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

3、大左括号“{”之前有一个空格,示例如下:

while a == d {
    n++
}

4、在方法或函数名与第一参数之间没有空格,后面的参数前应该有一个空格,参数冒号与数据类型之间也有一个空格。
推荐使用:

 func tableView(_ tableView: UITableView, didSelectRowAt   indexPath: IndexPath) {
     ...
}

不推荐使用:

func tableView ( _ tableView: UITableView, didSelectRowAt   indexPath: IndexPath) {
     ...
}
断行
  • 在一个逗号后面断开

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

  • 新的一行应该相对于上一行缩进两个级别(8个空格)。

例如:

(1)
 longName1 = longName2 * (longName3 + longName4 - longName5)
    + 4 * longName6

  (2)
 longName1 = longName2 * (longName3 + longName4 
  - longName5) + 4 * longName6

//代码第(1)行的断开位置要比第(2)行的断开位置好。因为代码第(1)行断开位于括号表达式的外边,这是个较高级别的断开。

(3)
 func tableView(_ tableView: UITableView, 
                            cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    ...
 }

//代码第(3)行是方法名断开,函数名断开的规则与方法的一样。

(4)
if longName1 == longName2
        || longName3 == longName4 && longName3 > longName4
&& longName2 > longName5 {
        print(true)
}

//代码第4行是if判断语句,由于可能有很多长的表达式,断开的位置应在逻辑运算符处。

(5)
boolName1 = (longName3 == longNmae4)
        ? longName3 > longName4
        : longName2 > longName5

//代码第(5)行是三元运算符的断开。

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

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

image.png

如上图:代码第1行和第2行是if语句条件表达式的断行,代码第1行和第2行要对齐。

相关文章

  • Swift--规范编程

    命名规范 注释规范 声明 代码排版 命名规范 常用命名方法 匈牙利命名,一般只是命名变量,原则是: 变量名 = 类...

  • 开题

    iOS编程规范 2016.11.25(1.0版本) 目录 iOS编程规范........................

  • python编程规范

    python编程规范 在python 编码过程中遵循PEP8编程规范 以下规范必须遵守 一、代码编排 缩进。4个空...

  • 04 | 代码规范:实践开发 Flutter 编程代码规范工具

    在实践编程之前,我们先来掌握代码规范,毕竟优秀的编程代码从规范开始。 命名规范 命名规范中包括了文件以及文件夹的命...

  • The Awesome Raywenderlich.com: 经

    Swift--弹性动画--Swift Swift--CALayer 教程: Getting Started超棒的源...

  • 乐乎项目优化

    编程: 1、代码规范。架构规范、文件组织规范、命名规范、代码逻辑规范、资源存放。 一、使用cocoapod 二、代...

  • Java程序员

    编程 学习 交流 开源 规范

  • 泛型

    出自阿里java编程规范

  • 编程规范

    本文档内容 saas参考示例及说明 强制性编程规范 建议性编程规范 参考书籍 一、saas参考示例 web层 参考...

  • 编程规范

    每行不超过80个字符; 缩紧用2个空格; 可执行python文件的头两行是: 变量用名词,小写字母,单词之间用下划...

网友评论

      本文标题:Swift--规范编程

      本文链接:https://www.haomeiwen.com/subject/adfjqktx.html