Skip to content

Instantly share code, notes, and snippets.

@HiroNakamura
Last active March 30, 2025 02:29
Show Gist options
  • Save HiroNakamura/1656638cf7902e059216caaa77b605b8 to your computer and use it in GitHub Desktop.
Save HiroNakamura/1656638cf7902e059216caaa77b605b8 to your computer and use it in GitHub Desktop.
Programando en Odin

Programando en Odin Programming Language

Aprendiendo Odin. Un lenguaje de programación orientado a datos.

Ejemplo:

holamundo.odin

package holamundo

import "core:fmt"

main :: proc() {
	fmt.println("Hola, mundo desde Odin!!")
}

Construir

$ odin build holamundo.odin -file

Ejecutar

$ holamundo.exe

Enlaces:

package fundamemtos
import "core:fmt"
main :: proc(){
fmt.println("\t[ Fundamentos de Odin Lang]");
testA();
testB();
testC();
testD();
}
sueldo_calculado :: proc(s: f32) -> f32{
return s + (s*0.15);
}
testD :: proc(){
CONSTANT_BOOLEAN :: true
if CONSTANT_BOOLEAN {
fmt.printfln("%.2f", 3.1416);
}
opera_booleana: bool = 45 > 200;
if opera_booleana {
fmt.println(" Bad ");
}else{
fmt.println(" Good 😃");
}
if !opera_booleana{
fmt.println(" Good 😃");
}
sueldo_base:f32 = 25000.0;
sueldo_final:f32 = sueldo_base;
if sueldo_base < 30000.0 && sueldo_base >= 22000.0{
sueldo_final = sueldo_calculado(sueldo_base);
}
fmt.printfln("Sueldo base: $%.1f", sueldo_base);
aumento:f32 = sueldo_final-sueldo_base;
fmt.printfln("Sueldo final: $%.1f", sueldo_final);
fmt.printfln("El aumento fue de: $%.1f", aumento);
}
testC :: proc(){
variable_f32: f32 = 5.43;
variable_bool:b32 = 23 > 3;
fmt.printfln("%.1f", variable_f32)
fmt.println(typeid_of(type_of(variable_f32))) // f32
fmt.println("Es verdadero?:", variable_bool)
fmt.println(typeid_of(type_of(variable_bool))) // b32
}
testB :: proc(){
program := "+ + * 😃 - /"
accumulator := 0
for token in program {
switch token {
case '+': accumulator += 1
case '-': accumulator -= 1
case '*': accumulator *= 2
case '/': accumulator /= 2
case '😃': accumulator *= accumulator
case: // Ignore everything else
}
}
fmt.printf("El programa \"%s\" calculo el valor %d\n",
program, accumulator)
}
testA :: proc(){
CONSTANT_NUMBER :: 12
DECIMAL_NUMBER :: 6.43
fmt.println("\t[ Variables y tipos de datos en Odin Lang]");
num_integer: int = 23;
fmt.println("No. entero: ", num_integer);
otro_num_integer:= 43;
fmt.println("Otro no. entero: ", otro_num_integer);
otro_num_integer = 21;
fmt.println("Otro no. entero: ", otro_num_integer);
float_number:f32 = 5.4;
fmt.println("No. flotante: ", float_number);
float_number = 0.433;
fmt.println("No. flotante: ", float_number);
fmt.println("Constante entera: ", CONSTANT_NUMBER);
fmt.println("Constante decimal: ", DECIMAL_NUMBER);
isCorrect: bool = true;
fmt.println("Booleano: ", isCorrect);
some_variable := 'A';
fmt.println("Rune: ", some_variable);
// cadena: string = "FERROCARRIL"
cadena := "FERROCARRIL";
fmt.println("String: ", cadena);
}
package holamundo
import "core:fmt"
main :: proc() {
fmt.println("Hola, mundo desde Odin!!")
}
package main
get_imc :: proc(peso: f32, talla: f32) -> f32 {
return peso / (talla * talla)
}
package main
import "core:fmt"
// Importamos el código del programa imc.odin
import "../imc_project"
main :: proc(){
peso: f32 = 78.0
talla: f32 = 1.72
fmt.println("\t [ Obtener IMC de una persona ]\n")
fmt.printfln("Peso: %.1f y talla: %.1f\n", peso, talla)
fmt.printfln("Tu IMC es de: %.2f\n", get_imc(peso, talla))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment