Go es un lenguaje de programación compilado y con tipado estático. Este ejercicio presenta tres características principales del lenguaje: paquetes, funciones y variables.
Las aplicaciones de Go se organizan en paquetes.
Un paquete es un conjunto de archivos fuente que se encuentran en el mismo directorio.
Todos los archivos fuente de un directorio deben compartir el mismo nombre de paquete.
Cuando se importa un paquete, solo se pueden usar o acceder a las entidades (funciones, tipos, variables, constantes) cuyos nombres comienzan con una letra mayúscula.
El estilo recomendado para nombrar en Go es que los identificadores se nombren con camelCase, excepto aquellos que deben ser accesibles entre paquetes, que deben usar PascalCase.
package lasagna
Go tiene tipado estático, lo que significa que todas las variables deben tener un tipo definido en tiempo de compilación.
Las variables se pueden definir especificando un tipo de forma explícita:
var explicit int // Explicitly typed
También puedes usar un inicializador, y el compilador le asignará a la variable un tipo que coincida con el tipo del inicializador.
implicit := 10 // Implicitly typed as an int
Una vez declaradas, a las variables se les pueden asignar valores usando el operador =.
Una vez declarada, el tipo de una variable nunca puede cambiar.
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
Las constantes contienen un dato igual que las variables, pero su valor no puede cambiar durante la ejecución del programa.
Las constantes se definen con la palabra clave const y pueden ser números, caracteres, strings o Boolean:
const Age = 21 // Defines a numeric constant 'Age' with the value of 21
Las funciones de Go aceptan cero o más parámetros. Los parámetros deben tener un tipo explícito; no hay inferencia de tipos.
Los valores se devuelven desde las funciones usando la palabra clave return.
Se llama a una función especificando el nombre de la función y pasando argumentos para cada uno de sus parámetros.
Ten en cuenta que Go admite dos tipos de comentarios.
Los comentarios de una sola línea van precedidos por // y los comentarios multilínea se insertan entre /* y */.
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
}
En este ejercicio vas a escribir algo de código para ayudarte a cocinar una lasaña espectacular de tu libro de cocina favorito.
Tienes cuatro tareas, todas relacionadas con el tiempo que se tarda en cocinar la lasaña.
Define la constante OvenTime con cuántos minutos debe estar la lasaña en el horno.
Según el libro de cocina, el tiempo esperado en el horno es de 40 minutos:
OvenTime
// => 40
Define la función RemainingOvenTime() que toma como parámetro los minutos que la lasaña lleva realmente en el horno y devuelve cuántos minutos le quedan aún por permanecer en el horno, según el tiempo esperado en el horno de la tarea anterior.
func RemainingOvenTime(actual int) int {
// TODO
}
RemainingOvenTime(30)
// => 10
Define la función PreparationTime que toma como parámetro la cantidad de capas que le agregaste a la lasaña y devuelve cuántos minutos dedicaste a prepararla, suponiendo que cada capa te toma 2 minutos.
func PreparationTime(numberOfLayers int) int {
// TODO
}
PreparationTime(2)
// => 4
Define la función ElapsedTime que toma dos parámetros: el primer parámetro es la cantidad de capas que le agregaste a la lasaña, y el segundo parámetro es la cantidad de minutos que la lasaña lleva en el horno.
La función debe devolver cuántos minutos en total dedicaste a cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña lleva en el horno en ese momento.
func ElapsedTime(numberOfLayers, actualMinutesInOven int) int {
// TODO
}
ElapsedTime(3, 20)
// => 26
Regístrate en Exercism para aprender y dominar Go con 35 conceptos167 ejercicios y mentoría humana real, todo gratis.