Definindo Tipos Personalizados
Parte da seção Fundamentos do Journey de GO da Coddy — lição 94 de 109.
Em Go, você pode criar seus próprios tipos personalizados baseados em tipos existentes. Isso dá ao seu código mais clareza e segurança de tipos.
Defina um tipo personalizado para temperatura em Celsius:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}O resultado mostra o valor da temperatura:
Temperature: 25.5°CTipos personalizados comportam-se como seus tipos subjacentes, mas são tratados como tipos distintos pelo compilador, melhorando a legibilidade do código e prevenindo erros lógicos.
Desafio
InicianteNeste desafio, você praticará a definição de um tipo personalizado em Go. Tipos personalizados permitem que você crie seus próprios tipos de dados baseados em tipos já existentes.
Sua tarefa é definir um tipo personalizado chamado Temperature que seja baseado em float64, e então criar uma variável deste tipo.
Após definir o tipo, o programa deve imprimir o valor e o tipo da variável de temperatura.
Folha de consulta
Crie tipos personalizados em Go usando a palavra-chave type:
type Celsius float64Tipos personalizados são baseados em tipos existentes, mas são tratados como tipos distintos pelo compilador:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Tipos personalizados melhoram a legibilidade do código e fornecem segurança de tipo, enquanto se comportam como seus tipos subjacentes.
Experimente você mesmo
package main
import "fmt"
// TODO: Defina um tipo personalizado chamado 'Temperature' baseado em float64
func main() {
// Crie uma variável do tipo Temperature com o valor 23.5
var roomTemp Temperature = 23.5
// Imprima o valor e o tipo de roomTemp
fmt.Printf("Room temperature: %v\n", roomTemp)
fmt.Printf("Type of roomTemp: %T\n", roomTemp)
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações10Tipos Compostos: Arrays
Introdução a ArraysDeclarando ArraysInicializando ArraysAcessando Elementos de um ArrayTamanho do Array com `len`Iterando sobre ArraysArrays Multidimensionais13Tipos Compostos: Structs
Definindo Tipos PersonalizadosCriando Instâncias de StructsAcessando Campos de StructsPonteiros para StructsInicializando StructsStructs IncorporadasStructs AnônimasRecapitulação - Estruturas de Dados Personalizadas2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões