Swift - 向数组添加一个或多个枚举值的函数

问题描述 投票:0回答:2

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)这个,但不记得在哪里。

swift function enums append
2个回答
0
投票

您必须使用可变参数

mutating func addLabel(_ labels: LabelEnum...) {
    for label in labels {
        self.label.append(label)
     }
 }

0
投票

您可以使用可变参数创建一个函数,即采用一个或多个值的参数

mutating func add(labels: LabelEnum... ) {
    labels.append(contentsOf: label)
}

示例:

var model = LabelEnumModel(id: 1)

model.add(labels: .title)
model.add(labels: .cond, .block)
© www.soinside.com 2019 - 2024. All rights reserved.