Swift 方法参数,集合中的任意字符串

标签 swift

我想知道是否可以在 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/

相关文章:

ios - 如何在 iOS 和 tvOS 上使用相同的 pod?

ios - 在 Swift 中解析数据 - 问题

swift - 核心数据和Xcode 11 : Please switch to using “NSSecureUnarchiveFromData” or a subclass of NSSecureUnarchiveFromDataTransformer

ios - 快速错误: UITableViewController has no member "function name"

ios - 在 web 服务代码中解包 Optional 值时意外发现 nil

Swift依次运行3个函数

json - 在 Swift 中迭代解码 JSON 的字典键

ios - 通过点击 X 按钮识别 AVPlayerViewController 何时关闭

ios - 检查用户是否有效 Parse (Swift)

ios - 快速从响应中获取数组