美文网首页
Swift基础(四)类型别名 元组 可选类型

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

作者: 夕儿77 | 来源:发表于2021-11-26 10:29 被阅读0次

类型别名

  • 类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。
typealias newname = Float
typealias Feet = Float
var distance: Feet = 100.0
print(distance)

元组

  • 元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
  • 可以创建一个类型为 (Int, Int, Int) 或者 (String, Bool) 或者其他任何你想要的组合的元组。
// 最简单的元组,就是在圆括号中,用逗号分割的一组值。
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 

可选类型

  • 使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示两种可能: 或者有值, 你可以解析可选类型访问这个值, 或者根本没有值。
  • C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回 nilnil 表示“缺少一个合法的对象”。这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如 NSNotFound)来暗示值缺失。
  • Swift 的可选类型可以让你暗示任意类型的值缺失,并不需要一个特殊值。
//创建可选类型 在类型和 ?之间没有空格。
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` 不能用于非可选的常量和变量。如果你的代码中有常量或者变量需要处理值缺失的情况,请把它们声明成对应的可选类型。
  • 可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有用,而可选类型对所有的类型都可用,并且更安全。
// 可选变量赋值为 `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")
}

可选绑定

  • 使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。
// if语句中写一个可选绑定
if let constantName = someOptional {
    statements
}

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

相关文章

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

    类型别名 类型别名对当前的类型定义了另一个名字,类型别名通过使用 typealias 关键字来定义。 元组 元组(...

  • swift3.1 Basic

    变量和常量 注释 Integers 类型别名 Bool //元组 可选型 Swift’s nil is not t...

  • 5.元组(tuple)及可空类型(null_type)

    元组 kotlin_元组 swift_元组 可空类型 kotlin_可空类型 Swift可选/可空类型(Optio...

  • Swift 整理(三)——字符串、集合类型

    别名:typealias 元组:(,,...) 可选类型:? 隐式解析可选类型:!可选类型被第一次赋值之后就可以确...

  • #2极速学习Swift

    本次内容: 元组 可选类型简介 可选解包 可选链 元组 Swift中提供了一种OC中没有的高级类型元组。你可以把多...

  • swift基础

    swift基础部分 常量和变量 注释 分号 整数 浮点数 类型安全和类型推断 数值型字面量 类型别名 布尔值 元组...

  • Swift--Swift原生数据类型

    Swift数据类型 整型 浮点型 数字表达式 数字类型之间的转化 布尔型 元组类型 可选类型 Swift数据类型 ...

  • swift语法基础<二>

    变量和常量的声明 常量的声明,就是将var换成let 数据类型 类型别名 元组 可选类型 强制解析: 可选绑定: ...

  • 关于 Swift

    title: 关于 Swift Swift 简介 类型安全与行推断 元组 字符串插值 可选类型

    2019-10-23 swift5 个人笔记 ①

    1,基本的数据类型 2,类型起别名 3,类型转换和??语法 4,可选类型(可能有值可能没有值) 5,元组类型: v...

网友评论

      本文标题:Swift基础(四)类型别名 元组 可选类型

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