标签:
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 结合性
}
三个级别的访问控制:public、internal (默认)和 private
表达式
表达式.init(构造器参数) == 表达式(参数)
表达式.self 返回SomeClass 类型本身
表达式.dynamicType
标签:
原文地址:http://www.cnblogs.com/anjuncc/p/5694831.html