IO
Console και filesystem I/O, με παρακολούθηση μέσω του effect `IO`.
IO
Το effect IO αντιπροσωπεύει αλληλεπιδράσεις με τον έξω κόσμο: output στην κονσόλα, ανάγνωση input, πρόσβαση σε αρχεία κ.λπ.
Console Output
fn main() with IO {
print("Hello, ")
println("Sounio!")
}
Reading Input
Το read_line() επιστρέφει string:
fn main() with IO {
println("Enter your name:")
let name = read_line()
print("Hi, ")
println(name)
}
Effect Enforcement
Αν μια συνάρτηση απαιτεί IO, οι callers πρέπει επίσης να δηλώσουν with IO (ή να το propagate/handle).
Αυτό αποτυγχάνει:
fn read_file(path: string) -> string with IO {
""
}
fn main() {
let _ = read_file("test.txt") // ERROR: IO not declared
}
Και αυτή είναι η διόρθωση:
fn read_file(path: string) -> string with IO {
""
}
fn main() with IO {
let _ = read_file("test.txt")
}