轉載自:http://www.boode.com.cn/share/swift.html
蘋果在今年的 WWDC 大會上推出了Swift編程語言,它是一門博採衆長的現代語言。蘋果的目的很明顯,就是要讓 Swift 替換 Objective-C。Swift 很簡單,學起來也很容易,所以它有望成爲示教編程的默認語言,其功能之強大可以滿足任何企業變成要求。Swift具有快速、現代、安全、可交互等特徵,並且其語法簡單,入門門檻低,有望替代語法複雜難懂的Objective-C語言。
爲了初步瞭解Swift語言的特點,我們寫了一些簡單的示例代碼,從這些代碼我們可以一窺其面目。
【HelloWorld】
1
|
println( "Hello World" ) |
有人可能要說,這行代碼是否少分號了?不是這樣的,在Swift裏分號是可寫可不寫的!也沒有IMPORT語句、main函數,也沒有@符號。編譯運行可以看到控制檯打印的Hello World字樣。這裏的println是全局函數,負責打印參數內容,並換行 。
【聲明變量和常量】
1
2
|
var legs = 4 // 變量legs
let PI = 3.1415926 // 常量PI |
legs爲變量,PI是常量,它們到底是什麼類型呢?答案是Type Inference(類型推測),由於這兩個語句在聲明的同時並且初始化,因爲4是Int類型,因此推測變量legs爲Int類型,同 理,3.1415926爲Double類型,因此推測PI爲Double類型。也可以強制規定類型:
1
2
|
var legs:Int //legs被強制規定爲整型 let PI:Double
//PI被強制規定爲浮點數類型 |
【switch語句】
switch語句的case後不用加break。弱你在其它一些語言中不寫break,那可就大錯特錯了!而在Swift中,switch選擇的case語句執行完畢後立即跳出switch語句,而不會因爲語句後沒有break繼續執行後面的case或者default語句
1
2
3
4
5
6
7
|
var a = 1 switch a { case 1 : println( 1 ) case 2 : println( 2 ) default : println( 3 ) } // no break at all |
【數組】
可以用n..m 或者 n...m 代替一個數組,比如:
1
|
for index in 0 .. 3 { println(index) } |
..代表前閉後開,...代表前後都閉合,所以0..3代表數組[0,1,2],而0...3代表[0,1,2,3]
【定義一個類 Class】
在Swift中,存在兩種類型,一種是引用類型(reference type),一種是值類型(value type),class是引用類型,而enumeration和struct是值類型,它們的一個重要區別是傳遞的方式不一樣,一個是傳遞副本,一個是傳遞本身
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<span> class Vehicle { </span>
var wheels:Int?
var maxPassengers:Int? func description() -> String {
return "This vehicle has \(wheels!) wheels,max passengers is \(maxPassengers!) " }
init(withWheels wheels:Int,andMaxPassengers maxPassengers:Int) {
self.wheels = wheels
self.maxPassengers = maxPassengers }
deinit { }
} |
該類名爲Vehicle,聲明瞭兩個屬性,wheels和maxPassengers。以及一個實例方法description,該方法沒有參數,返回值爲字符串類型。同時,該類提供一個初始化方法,init是關鍵字,該方法接受兩個參數,代表之前聲明的兩個屬性。該參數包括三個部分,分別是外部參數名(external parameter name),局部參數名(local parameter name)以及參數類型,在方法調用裏會用到外部參數名,局部參數名是用在方法體內的。