Swift基礎文法(一)

來源:互聯網
上載者:User

標籤:

  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基礎文法(一)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.