LINUX.ORG.RU

История изменений

Исправление uuwaan, (текущая версия) :

Я покрутил программу, и мне нелогичным кажется такой факт: сразу после создания у слайса d len=4, cap=4, но у слайса c len=2, cap=4. Например, пишу я функцию, которая возводит элементы слайса в квадрат, и передаю ей нижнюю половину массива. Получаю возможность внутри функции легально выйти за границы дозволенной области. Я так понимаю, что помимо синтаксиса [low:high] есть вариант [low:high:cap], и недоумеваю, почему по умолчанию cap ставится до конца нижележащего массива. Если бы ёмкость ставилась по умолчанию равной длине слайса, обсуждаемой подставы бы не случалось.

Исходная версия uuwaan, :

Я покрутил программу, и мне нелогичный кажется такой факт: сразу после создания у слайса d len=4, cap=4, но у слайса c len=2, cap=4. Например, пишу я функцию, которая возводит элементы слайса в квадрат, и передаю ей нижнюю половину массива. Получаю возможность внутри функции легально выйти за границы дозволенной области. Я так понимаю, что помимо синтаксиса [low:high] есть вариант [low:high:cap], и недоумеваю, почему по умолчанию cap ставится до конца нижележащего массива. Если бы ёмкость ставилась по умолчанию равной длине слайса, обсуждаемой подставы бы не случалось.