Sobes.tech
Senior

// Pergunta 4. O que será exibido na tela package main import "fmt" func subis(is []int) []int { return append(is, 5) } func main() { is := []int{1, 2, 3, 4} subis(is[2:3]) fmt.Println(is) }

sobes.tech IA

Resposta da IA

Neste código, é criada uma fatia is com os elementos [1, 2, 3, 4]. Depois, a função subis é chamada com o argumento is[2:3], que é uma fatia contendo apenas o elemento 3.

A função subis retorna uma nova fatia, obtida adicionando o elemento 5 à fatia passada. No entanto, o resultado da chamada a subis não é guardado em lugar nenhum, portanto, a fatia original is não é alterada.

A saída do programa será:

[1 2 3 4]

Explicação:

  • As fatias em Go são estruturas que contêm um ponteiro para um array, um comprimento e uma capacidade.
  • is[2:3] cria uma nova fatia de comprimento 1, apontando para o elemento 3 no array.
  • append pode modificar o array original se houver capacidade livre, mas como o resultado não é atribuído, as alterações não são guardadas.
  • A fatia original is permanece inalterada.