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: 0xc000014070Podemos 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 coddyObserve 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.
Desafio
FácilEscreva um programa que receba uma entrada do usuário e faça o seguinte:
- Cria um ponteiro com o tipo int usando a função new().
- Imprime o valor padrão do ponteiro.
- Atribui o valor inserido pelo usuário a esse ponteiro.
- 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
1Introdução
Introdução4Recriando Funções de Strings em Go
Strings em GolangFunção JoinFunção ContainsFunção IndexDesafio de Recapitulação #1