Почему инвертирование результата bool из параметра функции дает ошибку компилятора в Swift?

Я только начинаю учиться быстро, но для меня это не имеет смысла. Этот код:

func myFlipper(f: Int -> Bool, num:Int) {
    return !f(num)
}

Результаты в ошибке компилятора "Не могу вызвать"! с аргументом типа "Bool".

Из оперативного документа Apple "Логический оператор NOT (! A) инвертирует логическое значение, поэтому true становится ложным, а false становится истинным". ссылка

Кто-нибудь знает, что происходит?

+1
источник поделиться
1 ответ

Эта функция имеет тип void, и вы возвращаете Bool. Если вы хотите вернуть Bool, напишите его как,

func myFlipper(f: Int -> Bool, num:Int) -> Bool{
   return !f(num)
}

В противном случае ничего не возвращайте, и оно не дает никаких предупреждений.

+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос