Swift必会知识点(一)
2016-01-22 本文已影响144人
姜小码
自从apple将swift开源后,swift的发展钱途一片光明啊,Perfect已将swift带到了服务器端。PerfectlySoft是加拿大的一家创业公司,perfect让使用苹果的Swift语言构建企业级Web应用程序成为可能,到时候直接招一个swift程序员,从app到后端全都包了,那是不是很节约成本😂
感兴趣的可以star一下Perfect的GitHub页面。
1、Swift中除了class为引用类型外,其他都是值类型。所有的基本数据类型都是struct。值类型是线程安全的,但当涉及到处理大量数据并且频繁增减元素时,性能会比较低。
var array = [1,2,3]
var arrayNew = array
arrayNew.append(4)
array //array的值仍为 [1,2,3], arrayNew的修改的是array的值拷贝
OC下的 NSMutableArray、NSMutableDictionary、NSMutableSet是引用类型,Swift与OC是无缝兼容的,可将 Array、Set、Dictionary 转换为OC下对应的类型
var array = [1,2,3] as NSMutableArray
var arrayNew = array
arrayNew.addObject(4)
array //array的值变成了[1,2,3,4]
2、guard
可以把guard近似的看做Assert,但guard可以优雅的退出而非崩溃。guard中解包得到的值可以在下面的代码中使用,当然是限于该代码块
func checkIn(age: Int?) {
guard let a = age where a < 8 else {
print("大于8岁请买票")
return
}
print("上车...")
}
3、单例
class TestObject {
private static let testObject = TestObject()
static var getInstance: TestObject {
return testObject
}
private init() {
}
}
4、扩展 Swift2.0中,可以对协议进行属性和方法的扩展,与扩展类和结构体类似
extension String {
func showAuthor() {
print("姜小码")
}
}
"abc".showAuthor()