返回

Swift 类型概览

IOS

Swift 的类型指南:深入了解命名型和复合型类型

在 Swift 中,类型是对象行为和特性的定义。理解不同类型的区别对于创建健壮且可维护的代码至关重要。本文深入探讨了 Swift 中的两种基本类型:命名型类型和复合型类型。

命名型类型

命名型类型是指可以指定特定名称的类型,包括:

  • 类 (Class) :可用来创建自定义对象,这些对象具有属性和方法。
  • 结构体 (Struct) :不可变的、值类型的容器,用于存储数据并提供对数据的访问。
  • 枚举 (Enum) :表示一组相关值,这些值通常表示有限的状态或选项。
  • 协议 (Protocol) :定义类型应遵循的特定接口,为类型之间提供一种契约。

命名型类型可以通过以下方式定义:

class MyClass {
    // ...
}

struct MyStruct {
    // ...
}

enum MyEnum {
    // ...
}

protocol MyProtocol {
    // ...
}

复合型类型

复合型类型是通过组合其他类型来创建的,包括:

  • 数组 (Array) :有序集合,包含同一类型的元素。
  • 集合 (Set) :无序集合,其中每个元素都是唯一的。
  • 字典 (Dictionary) :键值对的集合,其中键和值可以是不同类型。
  • 元组 (Tuple) :不可变的、固定长度的元素组。
  • 可选项 (Optional) :表示值可以为 nil 或包含非 nil 值。

复合型类型可以通过以下方式定义:

let myArray: [Int] = [1, 2, 3]
let mySet: Set<String> = ["a", "b", "c"]
let myDictionary: [String: Int] = ["one": 1, "two": 2]
let myTuple: (Int, String) = (1, "hello")
let myOptional: Int? = 10

差异和用途

  • 命名型类型 用于定义具有特定属性和行为的自定义对象。
  • 复合型类型 用于聚合和组织数据,以及表示值之间的关系。

示例

以下示例展示了命名型和复合型的使用:

// 命名型类型:创建一个 User 类
class User {
    let name: String
    let age: Int

    // ...
}

// 复合型类型:创建一个包含 User 实例的数组
let users: [User] = [
    User(name: "Alice", age: 25),
    User(name: "Bob", age: 30),
]