美文网首页
Swift-可选型

Swift-可选型

作者: qtoq126 | 来源:发表于2018-01-09 10:51 被阅读0次
  1. 可选型的声明
var errorCode: String? = "404" //表示变量可以为空值,通常用var声明
print(errorCode) // 输出:optional("404")
  1. 可选型的基本用法
"The errorCode is " + errorCode //报错,可选型不能直接使用
需要用解包(unwrapped)的方式使用

"Hello" + errorCode! //强制解包,有风险性(errorCode可能为nil)

if let errorCode = errorCode { // 推荐用法(“if-let式”解包,建立新的解包常量,可以在大括号内持续使用)
    print("The errorCode is " + errorCode)
}  // 输出: The errorCode is 404

//一次性解包多个变量
if  let errorCode = errorCode ,
    let errorMessage = errorMessage , errorCode == "404"{
        print("Page Not Found!")

//可选型链
errorCode?.uppercased() //安全解包?
var uppercasedErrorCode = errorCode?.uppercased() //仍然是可选型

//可选型变量赋值给另一个变量
let errorCode1 = errorCode == nil ? "Error!" : errorCode!
let errorCode2 = errorCode ?? "nil-Error!"  //更简洁的写法
}
  1. 可选型更多用法
// 区别下列3中可选型
var error1: (errorCode: Int, errorMessage: String?) = (404, "Not Found")
var error2: (errorCode: Int, errorMessage: String)? = (404, "Not Found")
var error3: (errorCode: Int, errorMessage: String?)? = (404, "Not Found")

//可选型在实际项目中的应用
var ageInput: String = "16"

//隐式可选型
var errorMessage: String! = nil
errorMessage = "Not Found"
print("The message is " + errorMessage)
  1. 隐式可选型的用例
//1. 可以存放nil,可以直接使用,不用强制解包
//2. 常用于类的定义中(一开始设置为nil,在初始化后赋值)

var errorMessage: String! = nil
errorMessage = "Not Found"
"The message is " + errorMessage //但是如果是nil,则会直接报错(不安全)



class City {
  let cityName: String
  var country: Country
  init(cityName: String, country: Country) {
    self.cityName = cityName
    self.country = country
  }
}

class Country {
  let countryName: String
  var capitalCity: City! //初始化Country需要先初始化City
  init(countryName: String, capitalCity: String) {
    self.countryName = countryName
    self.capitalCity = City(cityName: capitalCity, country: self)    
  }
  func showInfo() {
    print("This is \(countryName)")
    print("The capital is \(capitalCity.cityName)")
  }
}
let china = Country(countryName: "中国", capitalCity: "北京")

相关文章

  • Swift-可选型

    可选型的声明 可选型的基本用法 可选型更多用法 隐式可选型的用例

  • swift-可选型(Optional)

    可选型作为swift语言中一大亮点,也是非常重要的一个概念,为此我们要学好swift,就要把可选型学好。 什么是可...

  • Swift-可选型学习笔记

    swift 边学边忘.在工作中使用的oc.真是费劲啊.这次好好做个笔记,忘了回来翻翻~学习方法:是看慕课网的视频,...

  • swift-类属性

    了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻[https://www.ji...

  • Swift4.0 --- 第一节:变量和常量

    // // ViewControllerOne.swift // Swift-(1) // // Created ...

  • Swift4.0 --- 可选项

    // // ViewControllerTwo.swift // Swift-(1) // // Created ...

  • Swift4.0 --- 可选项的判断

    // // ViewControllerFour.swift // Swift-(1) // // Created...

  • Swift4.0 --- 逻辑分支

    // // ViewControllerThree.swift // Swift-(1) // // Create...

  • Swift-可失败构造器

    如果一个类、结构体或枚举类型的对象,在构造过程中有可能失败,则为其定义一个可失败构造器。这里所指的“失败”是指,如...

  • 可选型Optional

    Optional可选型 1.什么是可选型2.为什么要有可选型3.可选型的使用4.可选型的本质5.?与!与?? 什么...

网友评论

      本文标题:Swift-可选型

      本文链接:https://www.haomeiwen.com/subject/nehynxtx.html