swift文法100

來源:互聯網
上載者:User

標籤:res   獨立   方法   第一個字元   組元   小數   條件   if語句   pen   

1.列印語句 

print("Hello World") 

2.定義常量和變數

定義一個字串常量與變數let constantString: String = "Hello"  // let 常量名稱: 字串類型 = "字串"var varibleString: String = "World"   // var 變數名稱: 字串類型 = "字串"

3.常量和變數類型會自動推斷,使用聲明的時候可以省略類型

let constantInt: Int = 1              // 常見的類型有 Int Double Float Stringvar pi = 3.14                         // 編譯器會自動推斷出pi是Double類型

4.類型必須匹配

5.輸出的語句

print(constantInt)                    // 1print("π的值是:\(pi)")                 // 輸出:3.1415926.輸出字串時將常量或變數放入\()中 

6.類型轉換

let three = 3                         // 按住option,滑鼠移動到變數名上,點擊可以查看常量類型var pointOneFour = 0.14               // 系統自動推斷pointOneFour的類型為:Doublepi = Double(three) + pointOneFour     // 只有類型一直才能操作,轉換格式: 類型名(變數或常量)let piInt = Int(pi)                   // Double轉Int,系統自動忽略小數點後面的數,會損失精度

7.元組

元組:多個可以是不同類型原色的集合let http404Error = (404, "Not Found") // 類型為:(Int, String),元組中的元素類型可以不同let (code, message) = http404Error    // 將元組賦值給一個常量print("code:\(code), message:\(message)") // code:404, message:Not Foundlet (_, ErrorMessage) = http404Error  // _ 可以起到省略的作用,這個在swift中應用很廣泛print(http404Error.1)                 // Not Found 通過下標訪問元素let ErrorCode = (requestError:401, 402, 403) // 定義元組的時候可以給單個元素命名                

8.可選類型,如果有可能賦值為nil,就必須聲明為可選類型

1. 可選類型: 用來表示有值或沒值的兩種狀態var errorCode: Int? = 404              // 在類型後面添加一個?print(errorCode)                       // Optional(404)errorCode = nil                        // 對非可選類型賦值為nil會報錯print(errorCode)                       // nil

9.使用!必須裡面不為nil

3. 使用if語句強制解析,可選類型不能直接使用需要轉化if errorCode != nil {                  // 確定可選類型包含值後可以在變數名後加!強制解析  print(errorCode!)                    // 404}

10.可選綁定,將可選類型賦值給一個臨時的變數或者常量

if let code = errorCode {    print(code)                        // 輸出:404, 自動解析}else {//    print(code)                      // ?,code是局部變數    print(errorCode)                   // 如果errorCode = nil此處輸出nil}

11.隱式解析可選類型:因為一定有值,所以可以免去解析的麻煩

let assumedString: String! = "A"       // 格式: 可選類型的?改成!print(assumedString)                   // Aif let TempString = assumedString {    // 隱式解析可選類型可以被當做普通可選類型來使用    print(TempString)                  // A}

12.字串是否為空白

emptyString2.isEmpty                   // true, 通過isEmpty方法判斷是否為空白

13.遍曆字串的所有字元

for char in emptyString1.characters {  // for迴圈後面會詳述    print(char)                        // 依次輸出emptyString1中所有字元}

14.擷取字串的長度

emptyString1.characters.count          // 9, 擷取字串中字元個數包括空格

15.字串的連結

var string3 = string1 + string2        // Hello World, 通過"+"將兩個字串相連string1.append(" !")                   // Hello World !, 通過append()方法拼接let messages = "Hello \(string2) !"    // Hello World !, 通過將常量或變數放入\()中

16.字串的截取

let messChar = messages[messages.startIndex]  // H,通過第一個字元的索引擷取字元let firstIndex = messages.index(after: messages.startIndex)  // 1, 第一個字元的索引let lastIndex = messages.index(before: messages.endIndex)  // 13, 最後一個字元的索引let index = messages.index(messages.startIndex, offsetBy: 4)  // 4, 初始位置位移4messages[index]                        // o, 通過索引獲得的字元為omessages[messages.endIndex]            // ?, 注意:索引不能越界

17.數組的建立

var arrTitle = [String]()

18.數組的添加

arrTitle.append("超值出遊");arrTitle.append("精選門票");arrTitle.append("享遊港澳");

19.數組的遍曆

for arrItem in twoDouble {             // 通過for in 迴圈遍曆    print(arrItem)                     // 依次列印每個元素}

for (index, value) in twoDouble.enumerated() {  // 使用迭代器擷取數組元素以及索引號    print("索引:\(index), 元素:\(value)")  // 依次列印索引號及元素 索引號:0, 元素:3.0 ...}   

20.字典的聲明

var charDict = ["char1":"A", "char2":"B"]  // 系統會作自動類型推斷,類型也可以省略

21.字典的添加

chars["char3"] = "C"  

21.字典的移除

chars.removeValue(forKey: "char2") 

22.字典的更新

chars.updateValue("b", forKey: "char2")    // 更新索引值對,要是這個鍵不存在則會添加一個

23.字典的遍曆

for (key, value) in charDict {             // 遍曆字典中的所有key value    print("\(key): \(value)")              // char2: B 換行 char1: A}for key in charDict.keys {                 // 遍曆字典中的所有key    print(key)                             // char2 換行 char1}for value in charDict.values {             // 遍曆字典中的所有value    print(value)                           // B 換行 A}

24.for迴圈的操作

for num in 1...5 {                     // 依次把閉區間[1, 5]中的值賦值給num    print(num)                         // 依次輸出5個數字}

25.if/else

num = 3if num == 3 {                          // if後判斷語句返回為真,執行後面{}    print(num)                         // if語句後面的{}不能省略}else {                                // if後判斷語句返回為假,執行else後面{}    print("num is not equeal to 3")}

26.switch

num = 12switch num {case 2:    print("num等於2")                  // 每個case分支至少需要包含一條語句    print("num等於2")                  // case分支末尾不需要寫break,不會發生貫穿case 3, 4, 5:                         // case語句可以匹配多個值,之間用(,)隔開    print("num == 3 or 4 or 5")case 6..<10:                          // case語句也支援區間    print("num大於等於6,且小於10")case 10..<19 where num % 3 == 0:      // 使用where語句來增加額外判斷條件    print("num大於等於10,且小於19,且能被3整除")default:    print("上面的情況都不滿足")}

27.基本函數: 用來完成特定任務的獨立程式碼片段

func minMax(currentArray array:[Int]) -> (min:Int,max:Int) {                var currentMin = array[0];        var currentMax = array[0];        for arrItem in array {            if arrItem < currentMin            {                currentMin = arrItem;            }                        if(arrItem>currentMax)            {                currentMax = arrItem;            }        }        return (currentMin,currentMax)    }

28.不確定參數個數的函數:

// 計算多個數的平均數func avarageNum(_ num: Double...) -> Double { // 參數後面加...表示有多個參數    var total: Double = 0    for number in num {        total += number    }    return total/Double(num.count)}avarageNum(2, 6, 4, 8, 7)               // 5.4, 參數個數不限avarageNum(5)                           // 注意: 一個函數只能有一個可變參數

 27.網路請求架構

 Alamofire.request("http://wimg.mangocity.com/bms/api/app/index/index.json", method: .get, parameters: nil, encoding: JSONEncoding.default)            .downloadProgress(queue: DispatchQueue.global(qos: .utility)) { progress in                print("Progress: \(progress.fractionCompleted)")            }            .validate { request, response, data in                debugPrint(response)                return .success            }            .responseJSON { response in                debugPrint(response)        }

  

 

 

swift文法100

相關文章

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.