struct dat 有一个变量,该变量可能包含一个或多个枚举值的数组。 我希望通过一个函数添加一个或多个枚举值,例如:
变异 func addEnumValue(value: EnumValue ){}
和
变异 func addEnumValue(value: [EnumValue] ){}
在一个功能中。
我想我需要一些超载或特殊的基因......呃......一些东西。
enum LabelEnum: String {
// multiply possiblities posible
case app
case cond
case title
case block
case none
var id: String { self.rawValue }
}
struct LabelEnumModel: Identifiable {
var id: Int
var label: [LabelEnum]
var description: String
init(id: Int, label: LabelEnum = .none, description: String = "")
{
self.id = id
self.label = [label]
self.description = description
}
mutating func addLabel(_ label: LabelEnum ) { // OR
mutating func addLabel(_ label: [LabelEnum] ) {
}
mutating func clearLabel() {
self.label = [.none]
}
}
我怎样才能做到这一点?我确实在某处读过或看到过(YT)这个,但不记得在哪里。
您必须使用可变参数。
mutating func addLabel(_ labels: LabelEnum...) {
for label in labels {
self.label.append(label)
}
}
您可以使用可变参数创建一个函数,即采用一个或多个值的参数
mutating func add(labels: LabelEnum... ) {
labels.append(contentsOf: label)
}
示例:
var model = LabelEnumModel(id: 1)
model.add(labels: .title)
model.add(labels: .cond, .block)