¿Cómo obtener la matriz subyacente de un segmento en Go?

Digamos que tengo el siguiente conjunto de entradas de longitud 3:

nums := [3]int{1,2,3}

Luego agarro la porción de solo los dos primeros artículos

numSlice := nums[:2]

Invocandocap en numSlice y nums produce 3 en ambos casos, ylen produce 2 y 3 respectivamente.

Si luego agrego a esa rebanada (numSlice = append(numSlice, 10)), la matriz subyacente (nums) es ahora[1 2 10]. cap permanece en 3 para ambos, ya que la matriz subyacente del segmento es la misma, y len para el segmento ahora es 3.

Sin embargo, si agrego a ese segmento nuevamente (numSlice = append(numSlice, 20)), la matriz subyacente del segmento debe cambiar; vemos que este es el caso cuandocap ahora se ha duplicado para numSlice y len ahora es 4.

Perdón por la explicación exagerada, solo caminando a través de ella, pero ¿alguien puede explicarme qué sucede debajo del capó a la matriz subyacente y cómo obtener la referencia a la nueva matriz?

Respuestas a la pregunta(1)

Su respuesta a la pregunta