Я пытаюсь передать перечисление в функцию, которая выполняет операцию над аргументами этого перечисления.Я получаю эту ошибку:
Expression type 'Bool' is ambiguous without more context
Та же ошибка происходит в эквивалентном условии if, поэтому проблема связана не с самим троичным оператором.
enum auto {
case pkw (SerialNumber: String, Axles: Int, Weight: Float)
case lkw (SerialNumber: String, Axles: Int, Weight: Float)
}
func checkIntegrity(car: auto) -> Bool {
switch car {
case .pkw:
if (checkSerialNumber(serialNumber: .pkw.SerialNumber.rawValue)
&& checkWeight(weight: .pkw.Weight.rawValue)) { // Error here, "&&" is underlined
return true
} else {
return false
}
break;
case .lkw:
return (checkSerialNumber(serialNumber: .lkw.SerialNumber.rawValue)
&& checkWeight(weight: .lkw.Weight.rawValue)) ? true : false; // same error here, "&&" is underlined
break;
default:
return false
}
Другие вызываемые функции просто возвращают Bool:
func checkSerialNumber(serialNumber: String) -> Bool {
return serialNumber.contains("ABABWA") // changed after a hint in the comments
}
func checkWeight(weight: Float) -> Bool {
return (weight < 2)
}
Я подозреваю, что что-то не так с enum и как я их использую, но я пока не нашел решения.