Киньте статью пожалуйста, или объясните на пальцах, в каких случаях нужно ставить лейблы в аргументах при вызове функции, а в каких нет
Нужно ставить, когда:
- у тебя есть устойчивое выражение с предлогом, например когда предлог стоит в конце “insert at”, “scroll to”, “cell in”, ... а может и в начале ”approveOf”, “havingLength”. То есть в таких случаях ты всегда выносишь предлог в argument label. Если выражение начинается с предлога, то тогда полностью выражение в argument label.
Исключение, когда у тебя последующие аргументы по смыслу имеют тоже значение, что и первый с предлогом. move(toX x: Int, y: Int). В таких случаях мы не пишем предлог в argument label.
Не нужно ставить, когда:
- у тебя аргументы имеют один смысл и их значение определяется именем самой функции. summ(_ x: Int, _ y:Int, _ z: Int) , ==(_ left: ..., _ right: ...)
- у тебя инициализаторы, которые кастят значение. Int(21.32)
- у тебя есть грамматическая фраза, но она не является выражением с предлогом. "addChild(_ ...)”, “addSubview(_ ...)” Исключение, если у тебя нету грамматической фразы, “sort(isAscending ...)”, “dismiss(animated ...)”