作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在制作一个函数,它将枚举作为参数,其中包含一年中的每个月。我在没有功能的情况下完成了这项工作,但这不是我的想法。
函数应该使用 switch 语句,所以如果我使用 September,函数应该返回 9,如果我输入 May,它应该返回 5,等等。
我正在使用 IBM Swift Sandbox,它给我以下错误:
/swift-execution/Sources/main.swift:129:1: warning: result of call tonumeroMes(mes:)' is unused 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)
最佳答案
这是警告,不是错误。这只是说调用 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
开始递增,所以Febrero
是2
,Marzo
是3
等等。
现在,每当您需要从枚举中检索原始值时,只需对其调用 rawValue
即可。示例:
Mese.Febrero.rawValue // 2
关于swift - 使用枚举作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39353918/
我是一名优秀的程序员,十分优秀!