Está funcionando após o final de uma fatia idiomática?

Eu estava lendo através do Go'scompress/flate pacote, e eu encontrei este pedaço estranho de código [1]:

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

No contexto,list é garantido para estar apontando para uma matriz com mais dados depois. Esta é uma função privada, por isso não pode ser mal utilizada fora da biblioteca.

Para mim, isso parece um hack assustador que deve ser uma exceção de tempo de execução. Por exemplo, o código D a seguir gera um RangeError:

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

O abuso de fatias pode ser feito de maneira mais simples (e também parecer mais seguro) com o seguinte:

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

Mas ambas as soluções parecem muito hacky e assustadoras e, IMHO, não devem funcionar como fazem. É este tipo de coisa considerada idiomática Go code? Se sim, qual das opções acima éMais idiomático?

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

questionAnswers(2)

yourAnswerToTheQuestion