Работает ли конец конца идиоматического?

Я читал через Гоcompress/flate пакет, и я нашел этот странный кусок кода [1]:

n := int32(len(list))
list = list[0 : n+1]
list[n] = maxNode()

В контексте,list гарантированно будет указывать на массив с большим количеством данных после. Это частная функция, поэтому она можетза пределами библиотеки.

Мне это кажется страшным взломом, который должен быть исключением во время выполнения. Например, следующий код D генерирует ошибку RangeError:

auto x = [1, 2, 3];
auto y = x[0 .. 2];
y = y[0 .. 3];

Злоупотребление ломтиками может быть сделано проще (и также выглядит более безопасным) с помощью следующего:

x := []int{1, 2, 3}
y = x[:2]
y = append(y, 4) // x is now [1, 2, 4] because of how append works

Но оба решения кажутся очень хакерскими и пугающими и, ИМХО, не должны работать как они. Считается ли такая вещь идиоматическим кодом Go? Если да, то что из вышеперечисленногоБольше идиоматическое?

[1] -http://golang.org/src/pkg/compress/flate/huffman_code.go#L136

Ответы на вопрос(2)

Ваш ответ на вопрос