標籤:
swift是一個基於objc進化過來的一個新的 OS X/IOS程式設計語言,而objc是基於c語言進化過來的一門程式設計語言。所以理論上說objc與c++是同一代產物並且objc與c++是相互獨立的兩套體系,知道這些以後你就不難理解為什麼objc與c++混編要把檔案名稱改成mm而objc與c混編不用修改檔案名稱了
常量與變數
在swift中常量用let定義,變數用var定義
定義格式
1 //定義並且不賦值 2 //常量 3 let 標識符 : 資料類型? 4 //變數 5 var 標識符 : 資料類型? 6 //定義且賦值 7 //常量 8 let 標識符 : 資料類型=值 9 //變數10 var 標識符 : 資料類型=值
特別說一下swift的標識符是用Unicode字元編碼表示的,也就是說你出來不能用數字、敏感欄位定義變數,其餘的各種文字隨便用這與objc和c/c++有很大不同。objc和c/c++的標識符是用ASCⅡ碼實現的。知道這個原理之後,我做了個實驗。
//函式宣告func 測試函數(text:String){ println("\(text)") }//函數調用測試函數("22222")
編譯、執行一切OK
基本類型
基本類型這一塊swift是相容objc類型的我只對新增類型做一個介紹
數字類型
swift的數字類型有Integer/Int/Float/Double
Integer類型其實就是objc裡的Int8類型
Int/Float/Double 根據運行機器的CPU位元作為變數位元。比如在iPhone5上Int是Int32而在iPhone5s上Int是Int64以此類推
數字表示:
十進位:直接寫數字 比如var a =10
二進位:0b加數字 比如 var a=0b1010
八進位:0o加數字 比如 var a=0o12
十六進位:0x加數字 比如 var a= 0x0A
以上這四個變數的十進位表示都是10
類型別名(typealias)
swift裡的typealias相當於c語言裡的typeof
布爾類型
swift裡的bool相當於與oc裡的BOOL只有兩個值:true ,false
swift裡的條件判斷返回的都是bool
//在c裡我們可以這麼用ifint a=1;if(a) printf("%d",a);//但我們同樣的代碼放到swift裡var a:Int=1if a{ println(a)//error}
元祖(Tuples)
swift裡的tuples當我第一次看到他時,以為他是數組(我X,數組不是Array嗎?Tuples是什麼鬼)仔細一看不是。它既能當數組又能當強型別字典,官方文檔裡說主要用於函數返回。其實我認為它就是個多功能的結構體(c++),隨時使用定義簡單
//定義方式1let a=(15,"age")//輸出15println(a.0)//輸出ageprintln(a.1)//定義方式二let b=(name:"Tony",age:15)//輸出name:Tony age:15println("name:\(a.name) age:\(a.age)")
可選類型(Optionals)
與其說Optionals是基本類型不如說它是每個基本類型的必要屬性,如果有值Optionals為true反之Optionals為false。
var a="123"if let b=a.toInt(){ println(b!)}
如果if後面直接加一個變數是判斷這個變數有沒有值。 b後面的驚嘆號是代表b不為nil toInt()函數是把字串轉換為Int類似 你可以把if去掉再把123改成hello試試看會發生什麼
調試專用函數
調試專用函數assert(條件,字串)如果條件不成立輸出字串
今天就寫這麼多,如有錯誤盡請指教。本人感激不盡
Swift基礎文法(一)