使用enum作为函数参数

时间:2016-09-06 16:37:26

标签: swift enums switch-statement

我正在创建一个函数,它将枚举作为包含一年中每个月的参数。我没有功能就完成了这项工作,但这不是主意。

该函数应该与switch语句一起使用,因此如果我使用9月,该函数应该返回9,如果我输入可能它应该返回5,等等。

我正在使用IBM Swift Sandbox,它给出了以下错误:

  

/swift-execution/Sources/main.swift:129:1:警告:调用tonumeroMes(mes :)'的结果未使用numeroMes(mes:.Septiembre)

这是我的枚举:

enum meses {
    case Enero
    case Febrero
    case Marzo
    case Abril
    case Mayo
    case Junio
    case Julio
    case Agosto
    case Septiembre
    case Octubre
    case Noviembre
    case Diciembre
}

无效的功能:

func numeroMes(mes: meses) -> Int {
    switch mes {
        case .Enero:
            return 1
        case .Febrero:
            return 2
        case .Marzo:
            return 3
        case .Abril:
            return 4
        case .Mayo:
            return 5
        case .Junio:
            return 6
        case .Julio:
            return 7
        case .Agosto:
            return 8
        case .Septiembre:
            return 9
        case .Octubre:
            return 10
        case .Noviembre:
            return 11
        case .Diciembre:
            return 12 
    }
}

numeroMes(mes:.Septiembre)

1 个答案:

答案 0 :(得分:3)

警告并非错误。它只是说没有使用numeroMes调用的结果。

顺便说一句,看起来您可以使用原始类型进行枚举,而不是定义自定义转换函数。这是

的方式
enum Mese: Int {
    case Enero = 1
    case Febrero
    case Marzo
    case Abril
    case Mayo
    case Junio
    case Julio
    case Agosto
    case Septiembre
    case Octubre
    case Noviembre
    case Diciembre
}

其他值将从1开始增加,因此Febrero2Marzo3,依此类推。

现在,无论何时需要从枚举中检索原始值,只需在其上调用rawValue即可。例如:

Mese.Febrero.rawValue // 2