2015-04-28 2 views
0

Возможно ли перегрузить функцию с теми же параметрами, но с разными диапазонами? Я пытаюсь реализовать расширение подстроки для Array для отрицательных индексов, так что если let a = [3, 1, 4], a[-1] == 4, a[-2] == 1 и т. Д. У Swift's Array уже есть функция индекса, поэтому я не хочу ее заменять, но создаю перегруженную функцию только для отрицательных целых чисел. Это любой способ сделать это? Благодарю.Функция перегрузки с параметрами одного и того же типа, но с разными диапазонами

+0

В этом ответе http://stackoverflow.com/a/29731961/1187415 показано, как «перегрузить» индекс, определяя настраиваемый тип, который обертывает индекс. –

ответ

1

Нет, это не так. Подписи функций основаны на параметрах и типах параметров. Это невозможно, потому что компилятор не знал, что делать, если передано какое-то положительное число. Он не может проверить его значение перед вызовом функции.

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