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

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

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

  • 驼峰命名(Camel-Case),又称骆驼命名法,是指混合使用大小写字母来名字。驼峰命名又分为:小驼峰法和大驼峰法。

    1. 小驼峰法是第一个单词是全部小写,后面的单词首字母大写,如:myRoomCount;

    2. 大驼峰法是第一个单词的首字母也大写,如:ClassRoom。

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

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

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

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

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

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

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

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

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

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

1、文件注释

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

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

  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帮助文档。文档注释主要对类型、属性、方法或函数等功能。

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

下面代码示例:

  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、代码注释

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

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

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

4、使用地标注释

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

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

  • MARK,用于方法或函数的注释。

  • TODO,表示这里代码有没有完成,还要处理。

  • FIXME,表示这里修改了代码。

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

  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,如下图,这些地标注释会在下拉列表中粗体显示,点击列表项就会跳转到注释行。

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

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

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

推荐使用:

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

不推荐使用:

  1. let level = 0; var size = 10

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

推荐使用:

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

不推荐使用:

  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. }

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

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

    我们在上一章中介绍了如何使用Swift编写一个HelloWorld小程序,其中就用到了变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字let,就可以把该变 ...

  2. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  3. Android journey 1@关于编码风格和命名规范

    /* * 1.关于编程风格:每一位程序猿可能都有自己独特的编程风格,但是有些规则是大家都必须遵守的,特别 * 是在工作的过程中,良好的代码风格能大大提高代码本身的可阅读性和维护性,也更有利于别人修改你 ...

  4. 前端开发规范:命名规范、html 规范、css 规范、js 规范

    上周小组的培训内容是代码可读性艺术,主要分享如何命名.如何优化代码排版,如何写好的注释.我们都知道写出优雅的代码是成为大牛的必经之路. 下面感谢一位前端开发小伙伴总结的前端开发规范,通过学习相关开发规 ...

  5. python代码规范和命名规范

    一.简明概述 1.编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识 2.代码格式 2.1.缩进 统一使用 4 个空格进行 ...

  6. python基础(代码规范、命名规范、代码缩进、注释)

    代码规范 PEP8(python增强建议书第8版) 每个import语句只导入一个模块 不要在行尾添加分号";" 建议每行不超过80个字符   超出部分可以用()来进行换行例如: ...

  7. CSS书写规范、命名规范、网易CSS框架NEC

    网易CSS框架NEC:http://nec.netease.com/ NEC框架的CSS规范:  CSS规范 - 分类方法 CSS规范 - 命名规则 CSS规范 - 代码格式 CSS规范 - 优化方案 ...

  8. PHP Document 注释标记及规范 && PHP命名规范

    注释标记 @access 使用范围:class,function,var,define,module 该标记用于指明关键字的存取权限:private.public或proteced @author 指 ...

  9. iOS代码规范之命名规范

    技术博客http://www.cnblogs.com/ChenYilong/    新浪微博http://weibo.com/luohanchenyilong   命名规范类命名    首字母大写,之 ...

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

    C#代码书写规则: 1. 尽量使用接口,然后使用类实现接口,以提高程序的灵活性. 2.一行不要超过80个字符 3.尽量不要手动更改计算机生成的代码 4.关键的语句写注释 5.建议局部变量在最接近使用它 ...

随机推荐

  1. HDOJ(HDU) 2088 Box of Bricks(平均值)

    Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...

  2. [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)

    题目:http://community.topcoder.com/stat?c=problem_statement&pm=12083 这道题还是挺耐想的(至少对我来说是这样).开始时我只会60 ...

  3. java创建XML及开源DOM4J的使用

    java import java.io.File; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; imp ...

  4. Java实现文件的预览

    最近项目需要用到文件的预览功能,就开始在网上收集资料,学习了几种文件预览的方法.我集成到我项目内测试的有以下三种,最后使用的是第三种: 直接使用别人提供的服务 例如:office web 365 使用 ...

  5. [转]百度地图点聚合MarkerClusterer移动地图时,Marker的Label丢失的问题

    参考文献:http://www.cnblogs.com/jicheng1014/p/3143859.html 问题现象: 使用MarkerClusterer_min.js,可以实现点聚合,但是当将带有 ...

  6. div+css 圆角加阴影

    .test{ display: inline-block; padding: 5px 10px 6px; text-decoration: none; border-radius: 5px; -moz ...

  7. bt5全称是Back Track five,是继BT3,BT4之后的最新版,这是一个linux环境的便携系统,可以放到U盘或者硬盘中启动,对本身硬盘没有影响,无需在本地安装。

    是圈内非常著名的黑客攻击平台,是一个封装好的Linux操作系统,内置大量的网络安全检测工具以及黑客破解软件等. Back Track因可以方便的破解无线网络而出名,其中内置的spoonwep2是一个非 ...

  8. SQLite3基本使用从shell到python

    SQLite是一个轻量级的关系型数据库,在訪问量不超过10万PV的中小站点中使用绰绰有余. 并且使用方便,接口简单,以下从命令行和python接口双方面介绍SQLite3的基本操作. 在linux终端 ...

  9. 实战:mysql版本号升级

    /***************************************************** mysql 5.6.19 升级到5.6.21 ********************** ...

  10. linux怎么给一个普通用户reboot权限?

    分四种情况讨论:1.让任何人(包括根本不拥有系统帐号的人)都可以通过控制台reboot在/etc/inittab文件中保留ca::ctrlaltdel:/sbin/shutdown -t3 -r no ...