返回
Swift语法参考之类型!
IOS
2024-01-11 23:26:09
对于 Swift 编程者而言,类型是语言的基本概念之一。它决定了变量、常量和表达式的值能够是什么。Swift 语言存在两种类型:命名型类型和复合型类型。
命名型类型
命名型类型是指定义时可以给定名字的类型。命名型类型包括类、结构体、枚举和协议。
类
类是创建对象的蓝图。它定义了对象的属性和方法。类还可以继承自其他类,从而复用代码。
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
结构体
结构体是值类型,存储在栈上。结构体不能继承自其他结构体,但可以遵守协议。
struct Point {
var x: Double
var y: Double
init(x: Double, y: Double) {
self.x = x
self.y = y
}
}
枚举
枚举是值类型,表示一组相关值。枚举可以定义关联值,即与枚举值相关的数据。
enum CompassPoint {
case north
case south
case east
case west
}
协议
协议定义了类型必须实现的方法和属性。协议可以被类、结构体和枚举采用。
protocol Drawable {
func draw()
}
复合型类型
复合型类型是由其他类型组合而成的类型。复合型类型包括数组、字典和集合。
数组
数组是有序值集合。数组中的值可以是任何类型。
var numbers = [1, 2, 3, 4, 5]
字典
字典是无序键值对集合。字典中的键可以是任何类型,值也可以是任何类型。
var capitals = ["China": "Beijing", "Japan": "Tokyo", "USA": "Washington D.C."]
集合
集合是无序值集合。集合中的值可以是任何类型。
var colors = Set(["red", "green", "blue"])
类型推断
Swift 编译器可以自动推断表达式的类型。这使得代码更加简洁和易读。
let number = 42
let name = "John"
类型转换
有时,需要将一种类型的值转换为另一种类型。可以使用类型转换运算符 (as
) 和 as?
来进行类型转换。
let number = 42 as Double
let name = "John" as String?
类型别名
类型别名可以为现有类型创建一个新的名称。这使得代码更加简洁和易读。
typealias DoubleArray = [Double]
typealias PersonInfo = (name: String, age: Int)
类型检查
可以使用 is
和 as?
运算符来检查值的类型。
if number is Double {
// do something
}
if name as? String != nil {
// do something
}
类型注释
类型注释可以显式指定变量、常量和表达式的类型。这有助于提高代码的可读性和可维护性。
var number: Double = 42
let name: String = "John"
总结
Swift 中的类型是语言的基本概念之一。它决定了变量、常量和表达式的值能够是什么。Swift 语言存在两种类型:命名型类型和复合型类型。命名型类型包括类、结构体、枚举和协议。复合型类型包括数组、字典和集合。