IO
IO de consola y filesystem, rastreado con el efecto `IO`.
IO
El efecto IO representa interacciones con el mundo exterior: salida por consola, lectura de entrada, acceso a archivos, etc.
Salida por Consola
fn main() with IO {
print("Hello, ")
println("Sounio!")
}
Leer Entrada
read_line() devuelve un string:
fn main() with IO {
println("Enter your name:")
let name = read_line()
print("Hi, ")
println(name)
}
Aplicación de Efectos
Si una función requiere IO, quien la llame también debe declarar with IO (o propagar/manejarlo).
Este patrón falla:
fn read_file(path: string) -> string with IO {
""
}
fn main() {
let _ = read_file("test.txt") // ERROR: IO not declared
}
Y esta es la corrección:
fn read_file(path: string) -> string with IO {
""
}
fn main() with IO {
let _ = read_file("test.txt")
}