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

     

     

     

  • 相关阅读:
    LeetCode(13) - Roman to Integer
    LeetCode(12) - Integer to Roman
    LeetCode(11) - Container With Most Water
    LeetCode(10) - Regular Expression Matching
    asp.net Mvc 使用uploadify 上传文件 HTTP 302 Error
    DbEntry 4.2 建立关系时的一些问题
    Log4Net 日志文件分类保存
    JqGrid 隐藏水平滚动条完美解决方案
    WebSocket使用SuperWebSocket结合WindowsService实现实时消息
    LigerUI ligerComboBox 下拉框 表格 多选无效
  • 原文地址:https://www.cnblogs.com/zrr-notes/p/6025813.html
Copyright © 2011-2022 走看看