zoukankan      html  css  js  c++  java
  • Swif

    //: Playground - noun: a place where people can play

     

    import UIKit

     

    var str = "Hello, playground"

     

    //可选型 Optional

     

    var errorCode:Int = 404

    var errorCode1:Int? = 404

     

    errorCode = 0

     

    //直接赋值nil

    errorCode = nil

    var color:UIColor = nil

     

    //可选型概念

    errorCode1 = nil

    var color2:UIColor? = nil//color2可以是一个UIColor 也可以是nil

    errorCode1 = errorCode

     

     

    print(errorCode1)

     

     

     

    var errorCode:String? = "404"

    print(errorCode)

     

    //可选型是不能直接被使用的,swift安全的体现,防止空指针

    errorCode += "The"

     

    //Unwrap 解包 (可选型需要被解包后才能使用)

    errorCode! += "The"//强制解包 (在可选型的后面直接添加"!"

     

    errorCode

     

    //新语法进行解包

    if let errorCode = errorCode {

        errorCode + " The "

    }

    else {

        "NO error"

    }

     

    var errorMessage:String? = "Not found"

     

    //一次解包多个变量

     

     

    if let errorCode = errorCode,

       let errorMessage = errorMessage {

        "The errorCode is " + errorCode + " The errorMessage is" + errorMessage

    }

     

     

    //Optional Chaining

     

    var erroMessage:String? = "Not found"

    if let errorMeaage = erroMessage {

        errorMeaage.uppercased()

    }

     

    //这就是Option Chinaining 链条方式

    erroMessage?.uppercased()//和上面的意思一样

     

     

    var uppercaseErrorMessage = erroMessage?.uppercased()

    if let errorMessage = erroMessage?.uppercased() {

        erroMessage

    }

     

    //nil coalesce

     

    //1.不安全

    var errorMessage:String? = nil

     

    let message: String

    if let errorMessage = errorMessage {

        message = errorMessage

    }

    else {

        message = "no error"

    }

     

     

    //2

    let message2 = errorMessage == nil ? "No error" : errorMessage

     

    //3.nil coalesce

    let message3 = errorMessage ?? "No error"//双问号

     

    //以上三种方式结果一样

     

     

     

    //可选型在元组中的使用

    var error1:(errorCode:Int, errorMessage:String?) = (404, "Not Found")

    error1.errorMessage = nil

     

    //可选型现实中的应用

    var ageInput: String = "16"

    var age = Int(ageInput)

    if let age = Int(ageInput) , age < 20 {

        print("You're a teenager!")

    }

     

    //隐式可选型

     

     

     

    var errorMessage:String? = nil

    errorMessage = "Not found"

    "The message is " + errorMessage!

     

    //隐式可选型

    var errorMessage1:String! = nil

    errorMessage1 = "Not found"

     

    "The messgae is " + errorMessage1

     

     

     

  • 相关阅读:
    HDU Problem 1811 Rank of Tetris【拓扑排序+并查集】
    POJ Problem 2367 Genealogical tree【拓扑排序】
    HDU Problem 2647 Reward【拓扑排序】
    HDU Problem 1285 确定比赛名次【拓扑排序】
    HDU Problem HDU Today 【最短路】
    HDU Problem 3665 Seaside【最短路】
    HDU Problem 一个人的旅行 【最短路dijkstra】
    HDU Problem 1596 find the safest road【最短路dijkstra】
    Beyond Compare文本合并进行内容替换要注意什么
    用这些工具都可以比较代码的差异
  • 原文地址:https://www.cnblogs.com/zrr-notes/p/6025813.html
Copyright © 2011-2022 走看看