swift笔记

init/deinit

enum serverResponse{

case Result(String,String)

case Error(String)

}

协议 protocol

class enum struct 都可实现protocol , 泛型

mutating 标记一个会修改结构体的方法

extension Int:xxxProtocol //为现有类增加功能

泛型类型名后可用where 对类型限定 where可省略

<T:Equatable> == <T where T:Equatable>

typealias abc =  UInt16   //类型别名

元组

let http400Eroor = (404,"Not,Found")

let (statusCode,statusMessage) = http404Error //从无组中提取数据

http404Eroor.0 //用下标取数据

let http200Status = (statusCode:200,description:"ok") //定义时给元素命名

http200Status.statusCode //直接取 

隐式解析可选类型 声明时? 变为! 使用时不用后缀,但可以用if 绑定

a%b == a% -b //取余 b符号被忽略,a为负,结果为负

8 % 2.5 //=0.5

空合运算符(nil coalesing operator)

a ?? b a不空结果为a,否则为默认值b; a optional ,b要和a的存储值一致

 

string struct enum 都是值类型

"abc".characters.count //字符个数

使用 ErrorType 的帮助建立你的异常类型

使用 throws 来声明异常,用 throw 来抛出异常

使用 do-catch 机制来获取和处理异常

处理异常

do{ try xx()

}catch ErrorType{

}

值绑定

let point = (3, 2)

switch point {

// point 中的元素绑定到 x y

case let (x, y):

    print("The point is at ((x), (y)).")

}

// 打印 “The point is at (3, 2).”

 

let someOptional: Int? = 42

// 使用枚举用例模式匹配

if case .Some(let x) = someOptional {

    print(x)

}

 

// 使用可选模式匹配

if case let x? = someOptional {

    print(x)

}

限制协议只能被类类型采纳,需要使用 class 关键字

protocol SomeProtocol: class {

    /* 这里是协议成员 */

}

使用 static 声明修饰符可以在协议声明中声明一个类型方法。结构体实现这些方法时使用 static 声明修饰符,类在实现这些方法时,

除了使用 static 声明修饰符,还可以选择使用 class 声明修饰符

subscript (参数列表) -> 返回类型 { get set } //下标

 

结构体和枚举的构造器可以调用其他已声明的构造器,从而委托其他构造器来进行部分或者全部构造过程。

要为类声明一个便利构造器,用 convenience 声明修饰符来标记构造器声明  便利构造器不能调用超类的构造器

convenience init(参数列表) {  

    构造语句

}  

运算符声明

infix prefix postfix

infix operator 运算符名称 {

    precedence 优先级

    associativity 结合性

}

三个级别的访问控制:publicinternal (默认) private

表达式

表达式.init(构造器参数) == 表达式(参数)

表达式.self 返回SomeClass 类型本身

表达式.dynamicType

原文地址:https://www.cnblogs.com/anjuncc/p/5694831.html