Variables
Nyx distingue entre bindings inmutables (let) y variables mutables (var). Los tipos se escriben explícitamente después de dos puntos, y la interpolación de strings con ${...} facilita incrustar valores dentro de las cadenas.
Código
// Variables: let (inmutable), var (mutable), tipos básicos e interpolación
fn main() -> int {
// let es inmutable
let nombre: String = "Nyx"
let version: int = 12
let activo: bool = true
let precio: float = 3.14
print("Nombre: ${nombre}")
print("Version: ${version}")
print("Activo: ${activo}")
// var es mutable — se puede reasignar
var contador: int = 0
contador = contador + 1
contador = contador + 1
print("Contador: ${contador}")
// Interpolación con expresión
let doble: int = contador * 2
print("Doble: ${doble}")
// Concatenación de strings
let saludo: String = "Hola, " + nombre + "!"
print(saludo)
return 0
}
Salida
Nombre: Nyx Version: 12 Activo: true Contador: 2 Doble: 4 Hola, Nyx!
Explicación
let declara un binding inmutable. Una vez asignado, no se puede reasignar — cualquier intento de hacerlo es un error de compilación. Esta es la forma predeterminada y preferida en Nyx, ya que la mayoría de los valores no necesitan cambiar.
var declara una variable mutable. Se puede reasignar libremente después de su declaración inicial. Usa var solo cuando la mutación es realmente necesaria — contadores, acumuladores y variables de bucle son buenos candidatos.
Los cuatro tipos escalares básicos que se muestran acá son String (texto UTF-8), int (entero con signo de 64 bits), bool (true o false) y float (número de punto flotante de doble precisión de 64 bits).
La interpolación de strings usa la sintaxis ${expr} dentro de una cadena entre comillas dobles. Cualquier expresión puede aparecer dentro de las llaves, y su valor se convierte automáticamente a cadena. También se pueden concatenar cadenas con el operador +.