Swift— Swift编码规范之命名规范-备

程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要。

命名方法很多,但是比较有名的,广泛接受命名法有:

  • 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示布尔类型变量,pFoo表示指针类型变量。匈牙利命名还是有一定争议的,在Swift编码规范中几本不采用匈牙利命名。
  • 驼峰命名(Camel-Case),又称骆驼命名法,是指混合使用大小写字母来名字。驼峰命名又分为:小驼峰法和大驼峰法。
    1. 小驼峰法是第一个单词是全部小写,后面的单词首字母大写,如:myRoomCount;
    2. 大驼峰法是第一个单词的首字母也大写,如:ClassRoom。

驼峰命名是Swift编码规范主要的命名方法,更加所命名的内容不同,可以选择小驼峰法还是大驼峰法。下面分类说明一下:

  • 对类、结构体、枚举和协议等类型命名,应该采用大驼峰法,如SplitViewController。
  • 文件名,采用大驼峰法,如BlockOperation.swift。
  • 扩展文件,有的时候扩展是定义在一个独立的文件中的,它的命名是“原始类型名+扩展名”作为扩展文件名,如NSOperation+Operations.swift。
  • 变量和属性,采用应该采用小驼峰法,如studentNumber。
  • 常量,采用大驼峰法,如MaxStudentNumber。
  • 枚举成员,与常量类似,采用大驼峰法,如ExecutionFailed。
  • 函数和方法,采用应该采用小驼峰法,如balanceAccount、isButtonPressed等。

=================================

前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/)。这里来介绍一下他们的使用规范。

1、文件注释

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

下面看一个文件注释的示例:

[html] view plain copy

print?

  1. /*
  2. Copyright (C) 2015 Eorient Inc. All Rights Reserved.
  3. See LICENSE.txt for this sample’s licensing information
  4. Description:
  5. This file contains the foundational subclass of NSOperation.
  6. History:
  7. 15/7/22: Created by Tony Guan.
  8. 15/8/20: Add socket library
  9. 15/8/22: Add math library
  10. */

这个注释只是提供了版权信息、文件内容和历史版本信息等,文件注释要根据自己实际情况包括内容。

2、文档注释

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

文档注释是稍微将单行注释(//)和多行注释(/*...*/)做一点“手脚”后,就成为了文档注释,单行文档注释(///)和多行文档注释(/**...*/)。

下面代码示例:

[html] view plain copy

print?

  1. import Foundation
  2. /**
  3. The protocol that types may implement if they wish to be
  4. notified of significant operation lifecycle events.
  5. */
  6. protocol OperationObserver {
  7. /// Invoked immediately prior to the `Operation`‘s `execute()` method.
  8. func operationDidStart(operation: Operation)
  9. }

代码中使用了文档注释。

可以使用一些工具将这些文档注释生成API文件

3、代码注释

程序代码中处理文档注释还需要在一些关键的地方添加代码注释,文档注释一般是给一些看不到源代码的人看的帮助文档,而代码注释是给阅读源代码人参考的。代码注释一般是采用单行注释(//)和多行注释(/*...*/)。

有的时候也会在代码的尾端进行注释,这要求注释内容极短,应该在有足够的空白来分开代码和注释。尾端注释示例代码如下:

[html] view plain copy

print?

  1. init(timeout: NSTimeInterval) {
  2. self.timeout = timeout  //初始化
  3. }

4、使用地标注释

随着编码过程深入,工程代码量会增加,任何在这大量的代码中能快速找到需要方法或者是刚才修改过代码呢?

在Swift代码中使用地标注释,然后就可以使用Xcode工具在代码中快速查找了。地标注释有三个:

  • MARK,用于方法或函数的注释。
  • TODO,表示这里代码有没有完成,还要处理。
  • FIXME,表示这里修改了代码。

    这些注释会出现在Xcode的 Jump Bar中。来看一个示例:

[html] view plain copy

print?

  1. class ViewController: UIViewController,
  2. ÊUITableViewDataSource, UITableViewDelegate {
  3. var listTeams: [[String:String]]!
  4. override func viewDidLoad() {
  5. super.viewDidLoad()
  6. ...
  7. }
  8. override func didReceiveMemoryWarning() {
  9. super.didReceiveMemoryWarning()
  10. //TODO: 释放资源                                 //使用TODO注释
  11. }
  12. // MARK: UITableViewDataSource 协议方法             //使用MARK注释
  13. func tableView(tableView: UITableView,
  14. ÊnumberOfRowsInSection section: Int) -> Int {
  15. return self.listTeams.count
  16. }
  17. func tableView(tableView: UITableView,
  18. ÊcellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  19. let cellIdentifier = "CellIdentifier"
  20. let cell: UITableViewCell! = tableView
  21. Ê.dequeueReusableCellWithIdentifier(cellIdentifier,
  22. ÊforIndexPath: indexPath) as? UITableViewCell
  23. // FIXME: 修改bug                               //使用了FIXME注释
  24. let row = indexPath.row
  25. let rowDict = self.listTeams[row] as [String:String]
  26. ...
  27. return cell
  28. }
  29. // MARK: UITableViewDelegate 协议方法                   //使用MARK注释
  30. func tableView(tableView: UITableView,
  31. ÊdidSelectRowAtIndexPath indexPath: NSIndexPath) {
  32. ...
  33. }
  34. }

上述代码中使用三种地标注释,在使用时候后面要跟有一个冒号(:)。

注释之后如果使用呢?打开Xcode的 Jump Bar,如下图,这些地标注释会在下拉列表中粗体显示,点击列表项就会跳转到注释行。

===============================

声明是在声明变量、常量、属性、方法或函数和自定义类型时候需要遵守的规范。

首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释。示例代码如下。

推荐使用:

[html] view plain copy

print?

  1. let level = 0
  2. var size = 10

不推荐使用:

[html] view plain copy

print?

  1. let level = 0; var size = 10

变量或常量的数据类型,如果有可能应尽可能采用类型推断,这样代码很简洁。示例代码如下。

推荐使用:

[html] view plain copy

print?

  1. let level = 0
  2. var size = 10

不推荐使用:

[html] view plain copy

print?

  1. let level: Int = 0
  2. var size: Int = 10

如果不是默认数据类型,需要明确声明变量或常量的数据类型。示例代码如下。

 

  1. let level: Int8 = 0
  2. var size: Int64 = 10

在指定数据类型时候需要使用冒号(:),size与冒号之间没有空格,冒号和数据类型之间要有一个空格。示例代码如下。

推荐使用:

 

  1. let level: Int8 = 0
  2. var size: Int64 = 10

不推荐使用:

 

  1. let level : Int8 = 0
  2. var size:Int64 = 10

使用数据类型时尽可能使用Swift本身数据类型,例如:

推荐使用:

 

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

不推荐使用:

 

  1. let width: NSNumber = 120.0
  2. let widthString: NSString  = "Hello."
  3. var deviceModels: NSArray
  4. var employees: NSDictionary

属性声明

属性包括存储属性和计算属性,如果是存储属性的声明规范与变量或常量声明的规范是一样的。如果是计算属性类似于代码块,在使用只读计算属性时候,如果可能要省略get语句。示例代码如下。

推荐使用:

 

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

不推荐使用:

 

    1. var fullName : String {
    2. get {
    3. return firstName + "." + lastName
    4. }
    5. }
时间: 2024-11-08 19:16:29

Swift— Swift编码规范之命名规范-备的相关文章

Swift常量和变量以及命名规范

我们在上一章中介绍了如何使用Swift编写一个HelloWorld小程序,其中就用到了变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字let,就可以把该变量指定为一个常量.顾名思义,常量是其值在使用过程中不会发生变化的量,实例代码如下:let_Hello = "Hello"_Hello标识符就是常量,只能在初始化的时候被赋值,如果我们再次给_Hello赋值,代码如下:_Hello = "Hello, World"则程序会

代码书写规范和命名规范

上一篇给大家分享了一下,关于文档编写的几个概念.这篇文章阐述如果编写代码书写规范以及命名规范文档.[以java语言为例] 1.代码书写规范 代码书写规范,能够让不同的人,写出相同风格的代码.很多人都看过java源代码,你会发现java源代码的整体风格几乎是一致的,但是你要知道编写源代码的人是很多的,如何才能让他们写出同一风格的代码呢?这就是代码书写规范的作用. 代码书写规范描述的是如何从头到尾书写代码(自己定义的).通俗点讲就是如何书写java文件.就像你写毕业论文一样,从头到尾每个细节都是有要

C#中的代码书写规范以及命名规范

C#代码书写规则: 1. 尽量使用接口,然后使用类实现接口,以提高程序的灵活性. 2.一行不要超过80个字符 3.尽量不要手动更改计算机生成的代码 4.关键的语句写注释 5.建议局部变量在最接近使用它的地方声明 6.不要使用goto系列语句,除非使用在跳出深层循环时 7.避免出现使用超过5个参数的方法. 8.避免书写代码量过大的try....catch模块 9.避免同一个文件中放置多个类 10.生成和构建一个长的字符串时,一定要使用StringBuilder类型,而不用string类型 11.s

零基础如何学好python?Python代码规范之命名规范

目录 1.模块 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况) 1 ''' 2 在学习过程中有什么不懂得可以加我的 3 python学习交流扣扣qun,934109170 4 群里有不错的学习教程.开发工具与电子书籍. 5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容. 6 ''' 7 # 正确的模块名 8 import decoder 9 import html_parser 10 11 # 不推荐的模块名 12

[转] Android 命名规范 (提高代码可以读性)

Android命名规范编码习惯 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员

java命名规范和编程技巧

一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写单词组成. Class 的命名 Class 的名字必须由大写字母开头而其他字母都小写的单词组成 Class 变量的命名 变量的名字必须用一个小写字母开头,后面的单词用大写字母开头. Static Final 变量的命名  Static Final 变量的名字应该都大写,并且指出完整含义. 参数的命名

Android 命名规范 (提高代码可以读性)(转)

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多. 在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一大标准

Android 命名规范 (提高代码可以读性) 转

转自:http://blog.csdn.net/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件 什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还 好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重 要,最好是

修炼成高薪Java程序猿——从优秀的Java命名规范开始

优秀的Java命名规范 1命名规范 1.1 package (*) 包名全部由小写的ASCII字母组成,用"."分隔. 在此项目中,所有的包均以"com.prosten.ticket"开头. 1.2 class (*) 类名应当是名词,每个内部单词的头一个字母大写.应当使你的类名简单和具有说明性.用完整的英语单词或约定俗成的简写命名类名. [示例]public class UserManager 1.3 interface(*) 接口名应当是名词,每个内部单词的头一