首页 > 解决方案 > 为什么 Swift 类需要 init 而不是 Swift struct

问题描述

下面的代码,其中一个用于 Struct,另一个用于 Class。

我想知道为什么我们需要init类而不是结构(尽管我们可以添加一个)?init在课堂上需要an,但在结构上更放松,是否有任何技术原因?

struct StructTest {
    private let value: Int
}

class ClassTest {
    private let value: Int

    init(value: Int) {
        self.value = value
    } 
}

标签: swift

解决方案


结构仍然有一个初始化器。唯一的区别是在某些情况下编译器会为你合成一个“默认的成员初始化器”。

在这种情况下,它使用签名创建了一个private init(value: Int)private因为您的结构有一个private字段)


推荐阅读