Swift學習(1基礎文法)

來源:互聯網
上載者:User

標籤:[]   不能   byte   內容   table   number   dem   類型轉換   rate   

Swift     基礎文法

基本

1.取消了預先處理命令

2.取消了指標的概念

3.取消了NS首碼

4.大量將類替換成struct

5.“;” 在同一行用來分割語句,如果不是同一行可以省略

6.可選項

7.playground

8.條件陳述式”if”,空執行”()”

9.沒有非0即真的邏輯

10.switch  (1)可以針對任意類型的值進行分支,不在局限在整數

(2)且一般不需要break。

(3)可以用“,”分割可選值

(4)所有的分支最少需要一條指令,如果沒用指令的時候,就用break

11.傳統的for迴圈已經被取消。 統一用for in   ,並支援反轉(正序逆序)等

12.i++, ++1 , i—, —i 都已經被取消

13.swift目前沒有代碼的自動布局,只能用frame或者xib

 

 

可選值

1.使用!解包

2.使用 ?? 解包(實際上是一個特殊的三目),優先順序較低,一般用()包一下

3.連用文法    if let / var    判斷對象的值是否為nil,進入分支後不需要解包 

4.連用文法   guard let       

 

1.{}在oc中的特殊用法, 常見的tableview的封裝

 

字串 string  (注意區別NSString)

1.支援遍曆 .characters

2.lengthofbytes  返回指定編碼狀態下的位元組長度

3.characters.count 返回展示的長度(推薦使用)

4.將string 轉換成 NSString

5.字元換的拼接

6.使用格式字串

7.字串的子串 

 

類型轉換 as

 

數組

1.swift存放類型可以存基礎資料類型和結構體不需要封裝,oc需要封裝NSNumber,NSValue(封裝結構體)

2.如果數群組類型中的類型不一致,自動推導成NSObject

注意的是,CG 結構體中,還是需要用NSValue封裝

3.swift 中還有一種類型,AnyObject —> 任意對象,可以沒有父類,這個跟oc所有的類都有父類是不同的

4.遍曆數組

  (1) 與oc一樣直接用[]去下標 for i in 0..<array.count 

(2)與OC一樣用for in 遍曆   for s in array

(3)與OC一樣用同時遍曆下標和內容                 for e in array.enumerated()

(4)swift特有的同事遍曆下標和內容 for (n,s) in array.enumerated()

(5)反序遍曆 for s in array.reversed()

(6)反序遍曆下標&內容(先枚舉後反序) for (n,s) in array. enumerated().reversed()

5.數組的增刪改

(1)OC中數組可分為不可變NSArray和可變NSMutableArray,swift中用的是let,var來聲明

(2)追加元素 array.append(“111”)

(3)修改通過下標定位修改 array[0] = “222”

(4)刪除 array.remove(at:3); array.removeAll(keepingCapcity:ture)(移除但是保留空間)

6.數組的初始化可變數組,初始化容量為0,若插入後,如果還要插入容量不夠,則容量=當前容量*2。如果初始化指定容量,可以避免插入時重複分配空間

var array = [int]()  

7.數組的合并 var array1 ,let array2。

(1) array1 += array2 要合并的數組的類型必須一致,不同類型   

 

字典

1.字典的定義,OC中用{} ,swift中用[].   例如  let dict = [“name”:”張三”,“age”:10]

特例: let array= [[string : AnyObject]] = [ [“name”:”張三”,”age”:10] , [“name”:”李四”,”age”:15]]

 

2.字典的增刪改 OC中有可變和不可變,swift中let 定義不可變, var 定義可變

var dict = [“name”:”張三”.”age”:15]

新增 如果key不存在就是新增

dict[“title”] = “大哥”

修改 如果key存在就是修改

dict[“name”] = “李四”

刪除  —指定key刪除

dict.removeValue(forKey:“name”)

注意:字典是通過key來定位的,且key必須是可以 hash的(每一個key可以轉換成一個唯一的整數)

 

3.字典的遍曆, OC遍曆只能通過遍曆key,然後才能取值

for e in dict e 是一個值對 用e.key  e.value  分別取值

for (key,value) in dict    key,value 分別取值

 

11.字典的合并

var dict1 =  [“name”:”張三”.”age”:15]

let  dict2 = [“name”:”李四”,“title”:“大哥”]

字典不能和數組類似的直接相加!!!

for e in dict2 { 

dict1[e.key] = dict2[e.key]

}

合并的過程,如果key存在只是修改,不存在是新增

 

 

//demo:https://github.com/fushengit/Learn-Swift

 

Swift學習(1基礎文法)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.