“ Self”在switch语句中有效,但在Swift中的If语句中无效

时间:2019-06-09 14:10:04

标签: swift

此代码有效

extension Character {
    func isVowel() -> Bool {
        switch self {
        case "a", "e", "i", "o", "u", "A", "E", "I", "O", "U":
            return true
        default:
            return false
        }
    }
}

但是当我使用if语句时,它给出“无法将类型” String”转换为Bool

extension Character {

    func isVowel() -> Bool {
        if "a", "e", "i", "o", "u" {
            return true
        } else {
            return false
        }
    }

}//does not work

我尝试添加“ self”和self.asciiValue

如何正确地将switch语句转换为if语句?抱歉,还是初学者大声笑

1 个答案:

答案 0 :(得分:0)

if语句应如下所示:

if self == "a" || self == "e" || self == "i" || self == "o" || self == "u" {
  return true
} else {
  return false
}

另一种方法是:

func isVowel() -> Bool {
  return ["a", "e", "i", "o", "u"].contains(self)

  // or even shorter (by Leo Dabus):
  return "aeiou".contains(self)
}