2015-10-11 3 views
0

Книга, которую я в настоящее время чтения на тему Swift развития игры ссылки Swift функции без первого параметра, а вместо этого использует подчеркивание вроде так ....Подчеркивание функций Swift

URLForResource (_, withExtension)

В примерах реального кода знак подчеркивания заменяется значением, но при обращении к этой функции он записывается, как указано выше. Я также видел, как это написано в документации Apple.

Я просто не понимаю, почему подчеркивается. Если это так, как вы ссылаетесь на определенную функцию, то как пользователь должен знать, какое значение стоит вместо подчеркивания?

Я прочитал, что первый параметр в функции не должен иметь внешнее имя, и это нормально, но исключение первого параметра похоже на то, что это вызовет дополнительный шаг, чтобы найти функцию посмотрите, какой параметр должен пройти.

Если бы это было возможно, если бы кто-то мог прояснить это для меня. Спасибо

+0

Просмотрев дубликатные ответы, могу сказать, что на самом деле для этого нет хорошего ответа. Объяснение того, что делает подчеркивание, достаточно прямолинейно, но я действительно еще не нашел причины, ПОЧЕМУ он используется так, когда ссылается на функцию в документации. Я понимаю, что это не внешний параметр, но написание его с подчеркиванием, особенно в документации, просто означает, что вы не можете смотреть на функцию и знать тип первого параметра. И если первый параметр отбрасывается, то зачем его представлять? – ALTVisual

ответ

2

Итак, вы просто используете подчеркивание, если вы не хотите, чтобы пользователь вводил имя переменной. Например, func foo(x: Int, y: Int) называется foo(6, y: 10), поэтому, если вы не хотите, чтобы кто-либо вызывал функцию, чтобы написать y, вы должны создать функцию как func foo(x: Int, _ y: Int). Кроме того, если вы хотите, чтобы вызываемый должен был писать x и y, вы должны написать func foo(x x: Int, y: Int). Все это стилистично. Поэтому я просто буду делать то, что имеет смысл. В xCode существует, очевидно, автозаполнение, поэтому я всегда оставляю имена параметров, потому что это делает код более понятным. Таким образом, нет смысла указывать имена подчеркивания или имени функции, отличные от того, чтобы сделать код более понятным.

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