Swift基础(四)类型别名 元组 可选类型

2021-11-26  本文已影响0人  夕儿77

类型别名

typealias newname = Float
typealias Feet = Float
var distance: Feet = 100.0
print(distance)

元组

// 最简单的元组,就是在圆括号中,用逗号分割的一组值。
var aTuple = (10, "meng")
// 元素带名称的元组
var aTuple1 = (index: 10, name: "meng")

// 元组的内容分解(decompose)成单独的常量和变量
let (A, B) = aTuple
print(A,B)

// 只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记
let (C, _) = aTuple
print(C)

// 可以通过下标来访问元组中的单个元素,下标从零开始
aTuple.0
aTuple.1

// 如果有名称的
aTuple1.name 

可选类型

//创建可选类型 在类型和 ?之间没有空格。
var optionalInteger: Int?
var optionalInteger: Optional<Int>

// 构造器来尝试将一个 String 转换成 Int
let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)
// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int"
// 因为该构造器可能会失败,所以它返回一个可选类型(optional)Int,而不是一个 Int。

nil

// 可选变量赋值为 `nil` 来表示它没有值
var serverResponseCode: Int? = 404
serverResponseCode = nil
// 声明一个可选常量或者变量但是没有赋值,它们会自动被设置为 nil
var surveyAnswer: String?

强制解析

// 强制解析可选值,使用感叹号(!):
// 使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
var myString:String?
myString = "Hello, Swift!"
if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}
Optional("Hello, Swift!")

自动解析

var myString:String!
myString = "Hello, Swift!"
if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

可选绑定

// if语句中写一个可选绑定
if let constantName = someOptional {
    statements
}

var myString:String?
myString = "Hello, Swift!"
if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}
上一篇 下一篇

猜你喜欢

热点阅读