Swift 结构:在运行时添加新参数

Swift Struct: adding new parameters at runtime

给定一个这样的结构实例:

struct Size {
    var width: Int
    var height: Int
}

是否可以通过运行时将其扩展为:

struct Size {
    var width: Int
    var height: Int
    var depth: Int
}

向 Size 结构的现有实例添加新参数?

谢谢

不,没有办法添加,但你可以做的是以下,你可以在 运行 时间声明你可能需要的一切作为可选的,加上 但是,如果您能够在 运行 时向 struct 添加新属性,它有什么用?你打算如何使用它们?

只需可选的值。

struct Size {
 var width: Int
 var height: Int
 var depth: Int? // this could be nil or Int 
}

这是Swift。在创建对象时,您应该了解对象的属性。

您必须选择:

  • 使 depth 属性 可选。那么这个 属性 不必有任何值

    var depth: Int?
    
  • 或者给它默认值

    var depth: Int = 1
    

    使用第二个选项,您可以使用默认值

    创建自定义 init
    struct Size {
        var width, height, depth: Int
    }
    
    extension Size {
        init(width: Int, height: Int) {
            self.init(width: width, height: height, depth: 1)
        }
    }
    
    Size(width: 1, height: 1)
    Size(width: 1, height: 1, depth: 1)