Срез имеет только один элемент с именем list, почему может работать список subslice [1:]? - PullRequest
0 голосов
/ 23 октября 2018

Срез имеет только один элемент с именем list, почему может работать список subslice [1:]?Например:

list := []int{1}
fmt.Println(list[1:])
fmt.Println(list[1])

В списке нет элемента с индексом 1, поэтому третья строка вызывает «панику: ошибка времени выполнения: индекс выходит за пределы диапазона», но почему вторая строка работает хорошо?

1 Ответ

0 голосов
/ 23 октября 2018

Ну, язык просто определяет , что это действительно.

Представьте, что индексы, используемые в сублицензировании, указывают на "между" элементами:

Slice a Elements:   | 0 | 1 | 2 | 3 | 4 | 5 |
Subslice a[2:]              ^===============
Subslice a[2:4]             ^===========^
Subslice a[6:]                              ^

Вашlist [1:] фрагменты пустого фрагмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...