История изменений
Исправление 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 ставится до конца нижележащего массива. Если бы ёмкость ставилась по умолчанию равной длине слайса, обсуждаемой подставы бы не случалось.