第一次写东西发布到网络上,还是有点小激动的。 不久之前加入了一个读书分享群。 里面很多人都说读了一定要总结出来,那样才能让自己学到的更多。于是乎,我有了写东西的冲动。 最近一直在学习Swift,现在就写写在Swift里面本人理解的注释风格。
注释:
有一个众所周知的工具 (VVDocument)
// 单行注释
/// 单行注释(三个斜杆的单行注释可以生成注释文档, 如果在开发中建议使用)
//!< 单行注释 (一般在枚举类型里面在case后面使用)
/*! 单行注释 */
/* 多行注释 */
/** 多行注释 */
///单行注释--尾行注释一般在枚举中使用
enum Test: Int {
web =1,//!< web类型
shop =2,//!< 商铺活动
};
文档注释
在注释里面使用**包括好的文字会粗体显示
Parameter 参数说明关键字
Throws: 抛出异常关键字
Returns: 返回对象
/// There are a few keywords Xcode can recognize automatically. The format is like **- <Keyword> -**:. The most common use one is **Parameter**, **Throws** and **Returns**.
/// **参数第一种写法**:
/// - Parameter item1: This is item1
/// - Parameter item2: This is item2
/// **参数第二种写法**
/// - Parameters:
/// - item1: This is item1
/// - item2: This is item2
/// - Throws: `MyError.BothNilError` if both item1 and item2 are nil.
/// - Returns: the result string.
func showKeywordsCommentsWithItem1(item1: AnyObject?, item2: AnyObject?) throws -> String {
if item1 == nil && item2 == nil{
throw MyError.BothNilError
}
let text = "There are a few keywords Xcode can recognize automatically."
return text
}
/// Some meta information can be added into the comment documentation using **author**, **authors**, **copyright**, **date**, **since**, **version**
///
/// This is an example
/// - Author: xixiaoyu
/// - Authors: All the geeks in the world:)
/// - Copyright: xixiaoyu@2016
/// - Date: 2016-07-22
/// - Since: iOS 6
/// - Version: 1.0.0
func test() -> String{
let haha = "Hello Swift"
return haha
}
超链接
空格只是为了显示,在项目注释中不需要空格
在注释中使用[] ()中括号里面是跳转名称,小括号里面是URL, 当我们点击xxx的时候 会在默认的浏览器中打开url所指定的网页。 例如:
Whelcome to imooc.
在注释中添加显示图片! [] () 中括号里面是logo名称, 小括号里面是logo的URL。
例如:
关键字
TODO
在开发的过程中遇到一个问题的时候,有可能我们需要放哪里过会再来处理,那我们可以使用关键字 TODO来进行标记
MARK
在一个文件里面可以使用MARK来对不同的方法进行分类区分
FIXME
FIXME 标记
命名规则
使用可读的驼峰命名法去给类 方法 变量 命名。 class struct protocol enum 应使用大写,变量名使用小写。
/// 变量常量命名
let testCount = 100
/// 类命名
class TestClass {
}
/// 结构体命名
struct TestStruct {
}
/// 枚举命名 使用首字母小写的驼峰命名法给每个case命名
enum TestEnum {
case test1
case test2
}
/// 协议命名遵循Apple's API DesignGuidelines使用名词来描述, 如 ing able ible,
protocol Prizable{
func isPrizable() -> Bool
}
protocol Moving {
func isMoveing() -> Bool
}
空格 空行
- 空格:
- 在运算符前后空格 let p = 3 + 4
- 逗号后面空格。
- 左大括号前空格 (右大括号另起一行)
func test(number: Int) {
} - 定义常量、变量时冒号后面空格, 冒号前面顶着常量变量。 let test: Int = 2
- 必包的大括号里面包含的内容需要前后空格。
func ==(s1:Student,s2:Student) -> Bool { return s1.score == s2.score }
- 空行:
- 在右大括号之后如果还有方法需要空行,如果没有则无需空行
- 代码块缩进原则
struct Student: CustomStringConvertible, Equatable, Comparable, Prizable {
var name: String
var score: Int
var description: String{
return name + "Score: " + String(score)
}
func isPrizable() -> Bool {
return score >= 60
}
}
推荐
if person.isHave {
// Do
} else {
// Do else
}
不推荐
if (user.isHappy ) 多余空格
{ 换行位置不对
// Do something
}
else {
// Do something else
}
类型定义 (转自: )
尽可能的使用swift自带类型,在必须的时候才做桥接 ,String-> NSString , Set->NSSet
能使用let尽量使用, 一般情况下不建议到处使用var
不要定义常量变量使用关键字
尽量let foo = something 而非 var for = somthing
let-有保障 并且它的值的永远不会改变,对同事也是个 清晰的标记,对于它的用法,之后的代码可以做个强而有力的推断。更容易明白代码的含义。否则的话一旦你用了 var,还要去考虑值会不会改变,这时候你就不得不人肉去检查。
这样,无论何时你看到 var,就假设它会变,并找到原因。
类型推断
Swift是高安全性语言,能让系统推断的类型不要显示指明, 空的字典和空数组的类型 使用类型标记 加强语义
如:
/// 推荐
let testString = "Hello"
var names: [String] = []
var lookup: [String: Int] = [:]
/// 不推荐
let testString: String = "Hello"