本文用于记录Swift学习中的差异点(Java/Objective-C/C基础)
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>
数组
字典
控制流
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 关键字