Menu
Coddy logo textTech

Nova Função

Lição 3 de 19 do curso Funções e Ponteiros em Golang da Coddy.

Nas últimas lições, aprendemos que as variáveis são objetos ou espaços na memória com um nome que aponta para esse espaço.

Em Go, temos uma função que cria um espaço sem nome na memória, e fazemos isso com a ajuda da função new(). A sintaxe é a seguinte:

coddy := new(string)

Aqui, criamos um objeto com o nome coddy e tipo string, e a função new() retorna um ponteiro para esse objeto (espaço).

Se imprimirmos o nome, obteremos o endereço de memória deste espaço:

fmt.Println("Value:", coddy)

O resultado será:

Value: 0xc000014070

Podemos reatribuir um valor a este ponteiro desta forma:

coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)

O resultado será:

Value: Learn To Code with coddy

Observe que quando criamos ponteiros com a função new(), o valor padrão não é nil. Ele depende do tipo, assim como as variáveis. Se o tipo for int, o valor padrão é 0; para string, é uma string vazia; e para boolean, é false.

challenge icon

Desafio

Fácil

Escreva um programa que receba uma entrada do usuário e faça o seguinte:

  1. Cria um ponteiro com o tipo int usando a função new().
  2. Imprime o valor padrão do ponteiro.
  3. Atribui o valor inserido pelo usuário a esse ponteiro.
  4. Imprime o valor do ponteiro após a atribuição.

Experimente você mesmo

package main

import (
	"fmt"
)

func main() {
	// Receba a entrada do usuário Não altere isso!
	var num int
	fmt.Scanln(&num)

	// Crie um ponteiro com o tipo int usando a função new().
 

	// Imprime o valor padrão do ponteiro.
    fmt.Println("Default value of the pointer:", ?)

	// Atribui o valor inserido pelo usuário a esse ponteiro
 

	// Imprime o valor do ponteiro após a atribuição.
    fmt.Println("Value of the pointer after assignment:", ?)
}

Todas as lições de Funções e Ponteiros em Golang