Разница между возвратом Void и () в быстром закрытии
3596 просмотра
3 ответа
В чем разница между этими замыканиями?
let closureA: () -> ()
а также
let closureB: () -> Void
Автор: Addev
Источник
Размещён: 12.11.2019 09:14
Ответы (3)
26 плюса
Если вы посмотрите в заголовки, вы увидите, что Void является typealias для (),
/// The empty tuple type.
///
/// This is the default return type of functions for which no explicit
/// return type is specified.
typealias Void = ()
Вы можете убедиться, что, используя эту игровую площадку,
let a = Void()
println(a) // prints ()
Обновить
Если вы хотите увидеть объявление Void в заголовочном файле, в приведенном выше коде введите приведенный ниже код в быстрой игровой площадке или редакторе xcode, например,
let a: Void = ()
Затем, cmd + клик по ключевому слову «Void» в вышеприведенном выражении, вы попадете в файл заголовка, где вы можете увидеть объявление для Void.
Документ был обновлен с дополнительной информацией, которая похожа на это,
Автор: Sandeep Размещён: 11.12.2014 12:18/// The return type of functions that don't explicitly specify a return type; /// an empty tuple (i.e., `()`). /// /// When declaring a function or method, you don't need to specify a return /// type if no value will be returned. However, the type of a function, /// method, or closure always includes a return type, which is `Void` if /// otherwise unspecified. /// /// Use `Void` or an empty tuple as the return type when declaring a /// closure, function, or method that doesn't return a value. /// /// // No return type declared: /// func logMessage(_ s: String) { /// print("Message: \(s)") /// } /// /// let logger: (String) -> Void = logMessage /// logger("This is a void function") /// // Prints "Message: This is a void function" public typealias Void = ()
3 плюса
Такой же. Это просто typealias, поэтому он работает точно так же.
typealias Void = ()
Похоже, Эрика Садун и Apple пытаются придерживаться Void: http://ericasadun.com/2015/05/11/swift-vs-void/
Автор: TenaciousJay Размещён: 03.02.2017 07:412 плюса
Там нет никакой разницы вообще
Void
это псевдоним для ():
typealias Void = ()
Автор: Greg
Размещён: 11.12.2014 12:11
Вопросы из категории :
- ios Приложение для iPhone в ландшафтном режиме, системы 2008
- ios Как мне дать моим веб-сайтам значок для iPhone?
- ios Как программно отправить смс на айфон?
- ios Как я могу разработать для iPhone, используя машину для разработки Windows?
- ios Tips for a successful AppStore submission?
- ios Как мне определить размер UITextView для его содержимого?
- ios iPhone viewWillAppear не стреляет
- ios Как показать индикатор загрузки в верхней строке состояния
- ios Как сохранить картинку в фотобиблиотеку iPhone?
- ios Как отключить выбор UITableView?
- swift Как я могу программным образом определить, работает ли мое приложение в симуляторе iphone?
- swift iOS: Convert UTC NSDate to local Timezone
- swift Как установить цель и действие для UIBarButtonItem во время выполнения
- swift Жирный и не жирный текст в одном UILabel?
- swift Найти касательную точки на кубической кривой безье
- swift Как я могу рассчитать разницу между двумя датами?
- swift How to get text / String from nth line of UILabel?
- swift Можно ли программно прокрутить до нужной строки в UIPickerView?
- swift Отключение клавиатуры в UIScrollView
- swift Как контролировать межстрочный интервал в UILabel