使用if语句访问struct中的枚举值

时间:2017-06-21 12:03:51

标签: swift if-statement struct enums

有这样的结构:

struct ScrollTableViewColumn {
    var ContentType: ContentType

    enum ContentType {
        case String
        case Numeric(sum: Double, width: CGFloat)
    }
}

我可以使用 switch语句访问存储在内容类型中的数字,如下所示:

switch column.ContentType {
case .Numeric(let sum, let width):
   // do something with sum and width…

如何使用 if语句来实现类似的功能?

1 个答案:

答案 0 :(得分:2)

首先,您需要使用小写字母设置属性名称和枚举值,因此请更改enum这样的内容。

enum ContentType {
    case string
    case numeric(sum: Double, width: CGFloat)
}

现在你可以这样使用if case

if case .numeric(let sum, let width) = column.ContentType {
     print(sum, width)
}

修改:你也可以这样做if case

if case let .numeric(sum, width) = column.ContentType {
     print(sum, width)
}