2015-05-27 8 views
0

У меня есть функция displayForPhone и displayForPrinter, у которой нет параметров. Я хочу вернуть эти функции из другой функции, называемой «display». У меня есть следующий код в Swift Playground, но он просто говорит, что это ошибка, но никогда не говорит мне, что ошибка:Функция возврата в Swift без параметров

func displayForPrinter() { 
    println("Displaying for printer") 
} 

func displayForPhone() { 
    println("Displaying for phone") 
} 

func display:(shouldDisplayForPhone :Bool) -> (void) -> (void) { 

    return shouldDisplayForPhone ? displayForPhone : displayForPrinter 
} 
+1

удалить посторонний ':' и void должен быть Void – Ian

ответ

5

Chang ваш код этого

func displayForPrinter() { 
    println("Displaying for printer") 
} 

func displayForPhone() { 
    println("Displaying for phone") 
} 

func display(shouldDisplayForPhone :Bool) -> (Void) -> (Void) { 
    return shouldDisplayForPhone ? displayForPhone : displayForPrinter 
} 
//test 
let function = display(true) 
function() 
+0

Спасибо, что решил проблему! По какой-то причине Свифт никогда не говорил мне, что я помещаю «:» после имени функции. Я считаю, что Свифт сейчас находится в очень незрелом состоянии. –

+0

Хорошо, быстро новый язык, он станет лучше.BTY, если он вам поможет, пожалуйста, примите мой ответ – Leo

+0

Да, я согласен через 1 минуту. Ограничение StackOverFlow :( –

Смежные вопросы