繼wwdc2014後,新的程式語言swift浮出水面。它具有高速、現代、安全、可互動等特徵,而且其語法簡單,入門門檻低,有望替代語法複雜難懂的objective-c語言。據其作者chris lattner在部落格上聲稱,該語言開發僅僅用了4年時間。而且底層框架基本上都是由其一人開發完畢。
依照慣例,先用swift來編寫乙個簡單的"hello world"
println("hello world")
沒錯,就這麼簡單,沒有import語句,沒有main函式,也沒有@符號,分號也不是必須的。編譯執行能夠看到控制台列印的hello world字樣。
這裡的println是全域性函式,負責列印引數內容,並換行。
swift能夠說是融合其它優秀程式語言的結果,因此很多語法都和其它語言存在共同之處。
以下將簡介一下該語言的一部分內容:
1. swift用var宣告變數,用let宣告常量。如
var legs = 4 // 變數legs那麼legs和pi究竟是什麼型別呢?答案是type inference(型別猜測)。由於這兩個語句在宣告的同一時候而且初始化,由於4是int型別。因此猜測變數legs為int型別。同理。3.1415926為double型別,因此猜測pi為double型別。let pi = 3.1415926 // 常量pi
也能夠強制規定型別:
var legs:int若legs變數是整數型別,僅僅需在變數名後加入冒號,緊接著尾隨乙個型別名就可以。let pi:double
2. 賦值運算子沒有返回值。而在其它一些語言中。賦值運算子返回的是變數的值。(如 a = 5 表示式返回5),而作為新手在做條件推斷時,經經常使用賦值運算子來取代"=="。導致一些非常難發現的邏輯錯誤,而在swift中不會出現這樣的情況,由於這是乙個語法錯誤。在編譯期間會給出錯誤資訊,如 if a = 5 ,if接受的是乙個bool值,而a = 5沒有返回值,因此會出錯。
/* in c++ */int a = 1;
if(a = 5) // compile success
/* in swift */
var a = 1
if a = 5 // compile error
// if a == 5 this is correct one
3. switch語句的case後不用加break。
這也是其它語言新手常常犯的乙個錯誤,而在swift中,switch選擇的case語句執行完成後馬上跳出switch語句,而不會由於語句後沒有break繼續執行後面的case或者default語句。
var a = 1switch a
// no break at all
4. 能夠用n..m 或者 n...m 取代乙個陣列,比方:
for index in 0 ..< 3..代表前閉後開。...代表前後都閉合,所以0..3代表陣列[0,1,2],而0...3代表[0,1,2,3]// 0
// 1
// 2
5. 怎樣在字串中插入變數或常量呢?swift提供乙個特殊的語法:
var number = 5是不是非常easy。僅僅需在字串中用\(和)包裹你要插入的變數或常量就可以。println("i got \(number) books")
// i got 5 books
6. 在swift中,存在兩種型別,一種是引用型別(reference type),一種是值型別(value type),class是引用型別。而enumeration和struct是值型別,它們的乙個重要差別是傳遞的方式不一樣,乙個是傳遞副本,乙個是傳遞本身。
在swift中,class的樣子是:
class vehicle該類名為vehicle,宣告了兩個屬性,wheels和maxpassengers。以及乙個例項方法description,該方法沒有引數,返回值為字串型別。同一時候。該類提供乙個初始化方法。init是keyword,該方法接受兩個引數,代表之前宣告的兩個屬性。該引數包含三個部分,各自是外部引數名(external parameter name)。區域性引數名(local parameter name)以及引數型別,在方法呼叫裡會用到外部引數名,區域性引數名是用在方法體內的。引進這樣的方法的優點是繼承objective-c的優良特性,使**段更像乙個句子,更富有描寫敘述性。以下來看看怎樣使用這個類:init(withwheels wheels:int,andmaxpassengers maxpassengers:int)
deinit
}
var porsche = vehicle(withwheels:4,andmaxpassengers:5)另外在類的屬性中,?代表optional。即該屬性要麼有值。要麼沒有值(nil)。println(porsche.description())
// this vehicle has 4 wheels,max passengers is 5
swift的語法文件見:
翻譯 Swift程式語言 關於Swift
swift是一門用於ios和os x應用開發的新的程式語言,它以c和objective c語言為基礎,但沒有c語言的相容性約束。swift採用了安全的程式設計模式並且新增了能夠讓程式設計更加簡單 靈活和富有樂趣的現代化特性。swift是白紙一張,再加上有成熟而且深受喜愛的cocoa和cocoatou...
swift 語言的程式設計正規化
一 函式式程式設計 對於支援函式式程式設計的語言,其一般的特點可能包含以下幾種 1 支援遞迴 swift 是支援遞迴的,事實上現在不支援遞迴的程式語言已經很難找到了。在 swift 裡寫乙個遞迴呼叫和其他程式語言並沒有什麼區別 1 23 4567 89 func fib n int int else...
Swift語言程式設計技巧集
如果需要實現已被廢棄的 var 引數的功能 在函式內部修改引數值,函式外部不可見 可以採用宣告變數覆蓋同名引數的辦法 func f i int let x 3 f x x 3試比較 func f i inout int var x 3 f x x 4無引數的閉包在形式上可以和 塊相同,需要根據上下文...