Συναρτήσεις
Ορισμός συναρτήσεων, τιμές επιστροφής και effect annotations.
Συναρτήσεις
Οι συναρτήσεις στο Sounio είναι expressions: η τελευταία έκφραση σε ένα block είναι η τιμή επιστροφής.
Βασικές Συναρτήσεις
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn greet(name: string) {
print("Hello, ")
println(name)
}
Κλήσεις Συναρτήσεων
let sum = add(3, 5) // 8
greet("World") // Hello, World!
Δήλωση Effects
Η spec απαιτεί τα side effects να δηλώνονται μέσω with ... στην υπογραφή της συνάρτησης.
fn log(msg: string) with IO {
println(msg)
}
Μπορούν να συνδυαστούν πολλαπλά effects:
fn safe_div(a: i32, b: i32) -> i32 with Panic {
if b == 0 {
panic("division by zero")
}
a / b
}
Μέθοδοι (impl)
Μπορείτε να ορίσετε συναρτήσεις πάνω σε types:
struct Point {
x: f64,
y: f64,
}
impl Point {
fn new(x: f64, y: f64) -> Point {
Point { x: x, y: y }
}
fn distance(&self, other: &Point) -> f64 {
let dx = self.x - other.x
let dy = self.y - other.y
sqrt(dx * dx + dy * dy)
}
}
Spec note: generics, closures και higher-order συναρτήσεις υποστηρίζονται από το design, αλλά κάποιοι συνδυασμοί μπορεί να εξελίσσονται ακόμα στον compiler.