iOS-初始swift(二)

swift中元組,可選類型,斷言,字符串,字符串的截取,數組與字典的使用

昨天寫了關於swift中的一點知識,畢竟是第一天開始學習,感覺有點凌亂。今天寫點swift 4.0的東西,這才慢慢入門,懂了一些技巧,現在說下,swift中每個版本中xcode中的語法都不太一樣,看書和看視頻都介紹的是swift 4.0的語法,然而我的xcode中是3.0或者4.0.於是看着2.0的視頻學習4.0,哪裏的語法不一樣就去官網看文檔,重新修正。順便發下4.0的連接—請點擊


元組的使用

//元組的使用
    func tupleDemo(){
        let returnResult=("404","網頁無發現")
        let http404Erroe=returnResult
        print("返回代碼爲\(http404Erroe.0)--返回結果爲\(http404Erroe.1)")

        let(justTheStautsCode,_)=returnResult
        print(justTheStautsCode)
    }

可選類型

//可選類型
    func optionType(){
        print("=============================swift 4.0============================")
        let possibleNumber="123"
        //因爲構造函數有可能初始化失敗,所以返回爲可選類型
        let convertedNumber = Int(possibleNumber)
        //先用來判斷是否存在值
        if convertedNumber != nil {
           //一旦確定存在值,則使用!來解包
            print("concertedNumber的值爲\(convertedNumber!)")
        }
        //可選綁定:可以使用可選綁定來確定可選類型是否包含值
        if let actualNumber=Int(possibleNumber) {
            print("\(possibleNumber)的整數是\(actualNumber)")
        }else{
            print("\(possibleNumber)無法轉換爲Int類型")
        }
        if let firstNumber=Int("4"),let secondNumber=Int("42"),firstNumber<secondNumber && secondNumber<100{
            print("\(firstNumber)<\(secondNumber)<100")
        }
        //隱式解包可選類型
        let possibleString:String? = "Any optionan string."
        let forceString:String = possibleString!

        let assumeString:String!="An implicatly unwarpping optional string."
        let implicatString:String=assumeString
        if assumeString != nil{
            print(assumeString)
        }
        if let definiteString = assumeString {
            print(definiteString)
        }
    }

斷言

//錯誤處理
    func doWithError(){
        //斷言和先決條件
        let age = -3
        //當爲true時候繼續執行,false時候執行後面的語句,並且終止程序運行
        assert(age<0,"A person's age can't be less than zero")
    }

字符串

//字符串
    func doWithString(){
       /*
            字符串
            swift中是String類型
            結構體,量級更輕,推薦使用
            OC是繼承NSString類型
            繼承自NSObject的對象

        */
        let str="HELLO WORLD"
        for c in str {
            print(c)
            print(str.count)//打印字符串的長度
        }
        //時間的格式化
        let h=8
        let m=3
        let s=4
        let dateString=String(format:"%02d:%02d:%02d",arguments:[h,m,s])
        print(dateString)
        let dateString2=String(format:"%02d:%02d:%02d",h,m,s)
        print(dateString2)
    }

字符串的截取

//字符串的截取
    func subString(){
        let greeting = "Hello, world!"
        //index返回第一次字符串線的下標,下標是否爲空若不爲nil則將下標解包後返回,否則,去greeting.endIndex的值
        let index = greeting.index(of: ",") ?? greeting.endIndex
        let beginning = greeting[..<index]//半開範圍操作符,取0到index的字符給beginning
        print("beginning的值爲\(beginning)")

        //半開範圍操作符的使用
        let names = ["Anna", "Alex", "Brian", "Jack"]
        let count = names.count//不包括最後一個
        print("count的值爲\(count)")
        for i in 0..<count {
            print("Person \(i + 1) is called \(names[i])")
        }
        //原生態的截取字符串,不包含結尾的內容還是很方便的
        let str = "Hello, world!"
        let i = str.index(str.startIndex, offsetBy: 4)
        str[i] // 返回字符 'o'
        let e = str.index(str.endIndex, offsetBy:-2)
        str[i ..< e] // 返回 字符串 "o, worl"
    }

數組

//數組
    func arrayDemo(){
        /*
            swift中有一個AnyObject,表示任意對象
            OC中所有對象都繼承自NSObject
            swift中的對象,可以沒有任何對象
         */
        var array:[AnyObject]=["zhangsan" as AnyObject,"list" as AnyObject]
        array.append("wangwu" as AnyObject)
        array.append(34 as AnyObject)//會自動擴容1,2,4,8,16會成倍增加
        print(array)
        //遍歷
        for s in array {
            print(s)
        }
        //數組的刪,改
        array[0]="dfhdj" as AnyObject
        print(array)
        array.removeFirst()
        array.remove(at: 1)
        print(array)

        var arrayMutable:[String]//mutablearray,定義數組並沒有分配空間
        arrayMutable=[String]()//分配空間
        arrayMutable.append("張三")

//        數組的初始化方式
//        1.定義->初始化
//        var array:[String]
//        array=[String]()
//        2.
//        var array=[String]()
//        array.append("12")

        //數組的合併
        var a:[String]=["張","sdsd"]
        var b:[String]=["sdsd","www"]
        var c:[String]=["小李子",String(12)]
        a+=b
        c+=a
        print(a)
        print(c)
    }

字典的定義和json

func dictionAndJson(){
        var dict=["name":"小花","age":10] as [String : Any]
        //如果key存在則覆蓋
        dict["name"]="小草"
        //如果key不存在,新增
        dict["title"]="老發"
        print(dict)
        //字典的遍歷
        for (k,v) in dict {
            print("key \(k)--value \(v)");
        }

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章