注:本系列学习笔记是以《Swift权威指南》为教程的学习笔记,部分代码摘抄自该教程。
Swift是什么?
Swift是一门拥有动态特性的静态语言,吸收了Objective-C,C#,Ruby,Python,Haskell等语言的优点。
Swift可以直接使用Cocoa和Cocoa Touch中的API(编译器实现)。
Swift是一门类型安全的语言。
Swift可以和Objective-C混合编程,但是分属不同的代码文件。
Swift可以通过元组(tuples)返回多个值。
Swift支持闭包。
Swift支持可选类型 Optional ,表示一个变量可能存在,也可能为未设状态 nil 通过?声明,通过!解包变量。
Swift编码中语句结束的分号是可选的,除非在一行中定义有多个执行语句。如 var x = 0; let y = 30;
Swift语法
输出到控制台:print
内嵌变量解析
var val = 30
print("value is \(val)")
let定义常量,常量必须初始化。
var定义变量
整数类型:
Int8:8位有符号整数
Int16:16位有符号整数
Int32:32位有符号整数
Int:32位有符号整数
Int64:64位有符号整数
UInt8:8位无符号整数
UInt16:16位无符号整数
UInt32:32位无符号整数
Int:32位无符号整数
UInt64:64位无符号整数
let decimalInt = 20
let binaryInt = 0b1110
let octalInt = 0o21
let hexInt = 0x34
var val1:Float = 30.2
var val2:Float64 = 3455.33
var val3:Double = 34354.23
类型别名
typealias MyIntType = Int32
var isFinished:Bool = true
字符串比较
var strA = "abcd"
var strB = "cdef"
if strA > strB
{
}
元组 tuples
let product1 = (20,"iPhone 6",5888)
var (id,name,price) = product1
let (_,name2,_) = product1
let product2 = (30,name:"iPhone 6",price:5888)
可选类型
let x:Int? = nil
let y:Int = 2
区间操作符
<span style="font-size:18px;">for i in 0..<4
{
print(i)
}</span>
<span style="font-size:18px;">//闭区间
for i in 0...4
{
print(i)
}</span>
数组(Array),某些情况下会转换为NSArray
字典(Dictionary),某些情况下会转换为NSDictionary
控制流
函数
Swift 2.0 新特性
将 println 函数统一为 print
do-while改成repeat-whilerepeat {
print(counter)
counter--
} while counter > 0
新增了 #available 标注来进行多版本兼容性支持
if #available(iOS 8.0, *) 用于检测当前的系统版本是否在iOS 8 或以上
try-catch异常捕捉do {
let content = try NSString(contentsOfFile: "/file/path/f.txt", encoding: NSUTF8StringEncoding)
} catch {
print("Failed")
}
throws throw抛出异常
guard 关键字
defer 关键字
代码下载(playground文件):