我想知道如何限制我可以传递的值集合作为参数(或作为属性的类)。或者,换句话说,我想要实现的逻辑实际上是使函数或类只接受特定的值。我想出了一个使用enum的想法。但这里需要注意的是,我不能在“案例”中使用纯整数。像这样:
enum Measure {
case 1, 2, 3
}
有没有办法实现我想要的东西?
答案 0 :(得分:3)
enum Measure:Int{
case ONE = 1
case TWO = 2
case THREE = 3
}
//accept it as argument
func myMethod(measure:Measure){
switch measure {
case .ONE:...
case .TWO:...
case .THREE
}
}
//call the method with some raw data
myMethod(Measure(rawValue:1)!)
//or call the method with
myMethod(Measure.ONE)
答案 1 :(得分:0)
但是你为什么要尝试实现它呢?默认情况下,Swift不允许传递比该函数或类的定义更多或更少的参数。
因此,如果你有一个只带一个参数的简单函数,那么在调用你的函数时,没有人可以传递少于或多个参数。如果他试图这样做,那么swift编译器将不允许他/她这样做。
从逻辑上讲,结论是你不需要开发类似的东西。
如果您的情况有所不同,那么我想通过添加评论或以更简单或可理解的方式撰写其他问题来告诉我。