- Я новичок в Swift, мой вопрос в том, где мы используем и нуждаемся в внешнем параметре?
ответ
В руководстве Language Swift в Apple:
Иногда полезно имя каждого параметра при вызове функции, указать цель каждого аргумента вы передаете функции.
Если вы хотите, чтобы пользователи вашей функции предоставляли имена параметров, когда вызывают вашу функцию, определите имя внешнего параметра для каждого параметра в дополнение к имени локального параметра.
Таким образом, вы не нуждаетесь в имени внешнего параметра, но использовать их полезно, потому что они служат документацией о параметрах в точке, вызываемой методом.
Например, без использования внешних имен параметров, вы можете определить способ присоединиться к так:
func join(_ s1: String,_ s2: String,_ joiner: String) -> String {
return s1 + joiner + s2
}
, который будет называться так:
join("foo", "bar", ", ")
Как вы можете видеть, каждый значение параметра не очень понятно. Использование внешних имен параметров, можно определить тот же метод, как показано ниже:
func join(string s1: String, toString s2: String, withJoiner joiner: String) -> String {
return s1 + joiner + s2
}
который затем заставить пользователей назвать это так:
join(string: "foo", toString: "bar", withJoiner: ", ")
Вы можете видеть, что это делает смысл параметры, наряду с тем, что делает метод, гораздо более понятны.
Это может показаться не столь важным в этом простом примере, но при определении методов, которые принимают множество параметров с не столь очевидными значениями, использование внешних имен параметров сделает ваш код намного понятнее.
Обновление для Swift 3:
Это стало еще более значимым с введением Swift 3. Рассмотрим append(contentsOf:)
метод класса Array, в Swift 3:
Не имея разные внутренние и внешние имена параметров в этом случае заставили бы нас заменить ярлык contentsOf
на что-то вроде string
на сайте вызова, которое не считалось бы столь же хорошим, как и предыдущее. Рекомендации Swift 3 API основаны на использовании разных внутренних и внешних имен параметров для создания четких и сжатых методов.
'функция FUNC (имя: String, возраст: Int) -> Пустота { // ..... } функция («Джек», 20) // Вызывает ошибку Функция («Джек», возраст: 30) // Правильный путь «Даже без использования внешних параметров компилятор заставляет меня писать возраст: 30 при вызове функции. Итак, зачем нам нужны внешние параметры? –
Потому что вы можете захотеть иметь внешнее имя параметра для первого параметра или другое внешнее имя, кроме того, которое автоматически присваивается Swift для второго параметра и тех, которые появляются после этого. –
Цитата из раздела «Локальные и внешние параметры имен для методов» в [Руководстве по быстрому программированию] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html): ' Swift дает имя первого параметра в методе локального имени параметра по умолчанию и дает по умолчанию второй и последующий имена параметров как локальные, так и внешние имена параметров. Это соглашение соответствует типичному соглашению об именах и вызовах, с которым вам будет знакомо писать методы Objective-C –
- 1. сценарий - внешние параметры/настройки
- 2. Внешние параметры от OpenCV
- 3. Использовать внешние параметры в SVG
- 4. Внешние параметры - Webparts- Sharepoint
- 5. Внешние параметры камеры - они постоянны?
- 6. Внешние параметры входа для Sharepoint?
- 7. jslint4java внешние параметры jslint игнорируются
- 8. Параметры Variadic в Swift
- 9. Внешние параметры web.xml в приложении Spring
- 10. Как передать внешние параметры триггерам в sql?
- 11. Параметры подписок в iOS Swift
- 12. параметры Swift Pass в селекторе
- 13. Ссылка параметры в классе Swift
- 14. enumerateObjectsUsingBlock - параметры литья в Swift
- 15. Параметры Swift метода в документации
- 16. Внешние параметры для компиляции проекта VS2008 C++
- 17. Как передать внешние параметры через Spark submit
- 18. Swift + макро параметры
- 19. Swift утверждают шпагатом параметры
- 20. Swift функциональные параметры
- 21. Внешние параметры камеры как двойной кватернион
- 22. Swift 3 Общие параметры
- 23. Swift закрывающие общие параметры
- 24. Swift сгенерированный заголовок отсутствует внешние быстрые рамки
- 25. Параметры функции Swift Generic Protocol
- 26. Внешние параметры для визуализации в Azure Power BI
- 27. Как создать триггеры, которые принимают внешние параметры в SQL Server?
- 28. javascript (node.js) | используя внешние параметры в области функции обратного вызова
- 29. Swift: параметры прохождения для uicontainerview
- 30. параметры без аннотации типа swift
http://www.apeth.com/swiftBook/ch02.html#_external_parameter_names – matt