Go é uma linguagem de programação compilada e de tipagem estática. Este exercício apresenta três recursos importantes da linguagem: pacotes, funções e variáveis.
Aplicações Go são organizadas em pacotes.
Um pacote é uma coleção de arquivos-fonte localizados no mesmo diretório.
Todos os arquivos-fonte em um diretório devem compartilhar o mesmo nome de pacote.
Quando um pacote é importado, apenas entidades (funções, tipos, variáveis, constantes) cujos nomes começam com letra maiúscula podem ser usadas / acessadas.
O estilo recomendado de nomenclatura em Go é que os identificadores sejam nomeados usando camelCase, exceto aqueles que devem ser acessíveis entre pacotes, que devem usar PascalCase.
package lasagna
Go tem tipagem estática, o que significa que todas as variáveis devem ter um tipo definido em tempo de compilação.
Variáveis podem ser definidas especificando explicitamente um tipo:
var explicit int // Explicitly typed
Você também pode usar um inicializador, e o compilador atribuirá à variável o tipo que corresponde ao tipo do inicializador.
implicit := 10 // Implicitly typed as an int
Uma vez declaradas, as variáveis podem receber valores usando o operador =.
Uma vez declarada, o tipo de uma variável nunca pode mudar.
count := 1 // Assign initial value
count = 2 // Update to new value
count = false // This throws a compiler error due to assigning a non `int` type
Constantes guardam um dado, assim como as variáveis, mas seu valor não pode mudar durante a execução do programa.
Constantes são definidas usando a palavra-chave const e podem ser números, caracteres, strings ou valores Boolean:
const Age = 21 // Defines a numeric constant 'Age' with the value of 21
As funções Go aceitam zero ou mais parâmetros. Os parâmetros devem ser tipados explicitamente, não há inferência de tipo.
Os valores são retornados de funções usando a palavra-chave return.
Uma função é invocada especificando o nome da função e passando argumentos para cada um dos parâmetros da função.
Repare que Go suporta dois tipos de comentários.
Comentários de uma única linha são precedidos por // e comentários de várias linhas são inseridos entre /* e */.
package greeting
// Hello is a public function.
func Hello (name string) string {
return hi(name)
}
// hi is a private function.
func hi (name string) string {
return "hi " + name
}
Neste exercício você vai escrever um pouco de código para ajudar a preparar uma lasanha incrível do seu livro de receitas favorito.
Você tem quatro tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.
Defina a constante OvenTime com quantos minutos a lasanha deve ficar no forno.
De acordo com o livro de receitas, o tempo esperado no forno, em minutos, é 40:
OvenTime
// => 40
Defina a função RemainingOvenTime() que recebe como parâmetro os minutos que a lasanha já passou no forno e retorna quantos minutos a lasanha ainda precisa ficar no forno, com base no tempo esperado no forno, em minutos, da tarefa anterior.
func RemainingOvenTime(actual int) int {
// TODO
}
RemainingOvenTime(30)
// => 10
Defina a função PreparationTime que recebe como parâmetro o número de camadas que você adicionou à lasanha e retorna quantos minutos você gastou preparando a lasanha, considerando que cada camada leva 2 minutos para preparar.
func PreparationTime(numberOfLayers int) int {
// TODO
}
PreparationTime(2)
// => 4
Defina a função ElapsedTime que recebe dois parâmetros: o primeiro parâmetro é o número de camadas que você adicionou à lasanha, e o segundo parâmetro é o número de minutos que a lasanha está no forno.
A função deve retornar quantos minutos no total você trabalhou no preparo da lasanha, ou seja, a soma do tempo de preparo, em minutos, com o tempo, em minutos, que a lasanha passou no forno até o momento.
func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
// TODO
}
ElapsedTime(3, 20)
// => 26
Crie sua conta no Exercism para aprender e dominar Go com 35 conceitos167 exercícios e mentoria humana de verdade, tudo de graça.