我想知道是否可以在 Swift 中指定方法的参数必须是几个预先确定的字符串之一?
例如:
foo(meal: MealType) { ... }
在此示例中,meal
应该是三个字符串之一:
MealType {
breakfast = "b"
lunch = "l"
dinner = "d"
}
最佳答案
使用枚举
enum MealType: String {
case breakfast = "b"
...
}
然后,在您的 foo(meal: MealType) { ... }
中,检查 meal.rawValue
以获取 String
值
如果你想让它更具可读性,你可以像下面这样扩展枚举
extension MealType {
var identifier: String { return rawValue }
}
然后使用 meal.identifier
代替 rawValue
关于Swift 方法参数,集合中的任意字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41459501/