El lenguaje Go es fuertemente tipado, es decir cada vez que definimos una variable debemos indicar que tipo de dato puede almacenar (por el memento hemos visto solo los tipos de datos int y float32, luego veremos que hay otros tipos de variables para guardar un caracter, un conjunto de caracteres un valor lógico etc.)
Si tenemos que definir dos variables enteras y cargarles el valor inicial 10 la sintaxis es:
var valor1, valor2 int valor1 = 10 valor2 = 10
El lenguaje Go nos permite hacer una definición y carga del valor inicial con una sintaxis simplificada:
valor1 := 10 valor2 := 10
Es importante notar que utilizamos el operador := con esto estamos indicando al compilador de Go que estamos definiendo una variable y que debe inferir de que tipo se trata analizando el valor que aparece a la derecha de :=
Realizar la carga de dos enteros por teclado. Mostrar la suma y diferencia de los mismos.
package main import "fmt" func main() { var valor1, valor2 int fmt.Print("Ingrese el primer valor:") fmt.Scan(&valor1) fmt.Print("Ingrese el segundo valor:") fmt.Scan(&valor2) suma := valor1 + valor2 fmt.Println("La suma de los dos valores es:", suma) resta := valor1 - valor2 fmt.Println("La diferencia del primer valor respecto al segundo es:", resta) }
En este programa hemos definido 4 variables de tipo int: valor1, valor2, suma y resta.
La sintaxis que venimos trabajando es utilizar la palabra clave var seguida de los nombres de las variables a definir y de que tipo son:
var valor1, valor2 int
La segunda forma simplificada es indicar el nombre de la variable seguida por el operador := y el valor que se almacenará. El compilador de Go identifica que las dos variables "valor1" y "valor2" son de tipo int por lo que define la variable "suma" de tipo int.
La nueva sintaxis resume el empleo de la sintaxis:
var suma int suma = valor1 + valor2
Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar un mensaje "Promocionado". Definir por inferencia el tipo dato para almacenar el promedio
package main import "fmt" func main() { var nota1, nota2, nota3 int fmt.Print("Ingrese primer nota:") fmt.Scan(¬a1) fmt.Print("Ingrese segundo nota:") fmt.Scan(¬a2) fmt.Print("Ingrese tercer nota:") fmt.Scan(¬a3) promedio := (float32(nota1) + float32(nota2) + float32(nota3)) / 3 fmt.Println("Promedio:", promedio) if promedio >=7 { fmt.Print("Promocionado") } }
Como queremos que se guarde un valor con coma en la variable promedio convertimos los valores de nota1, nota2 y nota3 a float32:
promedio := (float32(nota1) + float32(nota2) + float32(nota3)) / 3
El compilador sabe que debe definir una variable llamada promedio de tipo float32.
Es importante recordar de utilizar el operador := para la definición de la variable por inferencia y carga del dato.
Si tratamos de escribir el operador de asignación = se producirá un error sintáctico:
promedio = (float32(nota1) + float32(nota2) + float32(nota3)) / 3
Error de compilación:
.\ejercicio029.go:13: undefined: promedio
ejercicio030.go package main import "fmt" func main() { var num1, num2 int fmt.Print("Ingrese primer valor:") fmt.Scan(&num1) fmt.Print("Ingrese segundo valor:") fmt.Scan(&num2) if num1 > num2 { suma := num1 + num2 diferencia := num1 - num2 fmt.Println("La suma de los dos valores es ", suma) fmt.Println("La diferencia de los dos valores es ", diferencia) } else { producto := num1 * num2 division := float32(num1) / float32(num2) fmt.Println("El producto de los dos valores es ", producto) fmt.Print("La división de los dos valores es ",division) } }