Rust:
Організація коду в функції

Як це зробити:

Припустімо, у вас є код, що калькулює площу кола кілька разів. Замість повторення формули, ви обертаєте її у функцію.

fn calculate_circle_area(radius: f64) -> f64 {
    std::f64::consts::PI * radius.powi(2)
}

fn main() {
    let radius = 5.0;
    let area = calculate_circle_area(radius);
    println!("Площа кола становить: {}", area);
}

Вивід:

Площа кола становить: 78.53981633974483

Поглиблений аналіз

Історично функції прийшли з математики, де вони відображають вхідні дані на вихідні. У програмуванні вони існують із часів асемблеру, хоча ми називали їх “підпрограмами”. Функції в Rust можуть повертати значення та навіть інші функції завдяки функціям першого класу та замиканням.

Альтернативи? Вбудований код або макроси, але вони заплутані для складної логіки. Об’єкти з методами - ще один спосіб організації функціональності, інший смак, ніж стандартні функції.

Імплементація в Rust досить проста. Функції оголошують типи своїх параметрів і тип повернення. За звичкою вони мають імена у стилі ‘snake case’. Є публічні функції (pub fn) для використання поза модулем та приватні для внутрішнього використання. І в Rust є ця класна функція, коли вам не потрібно ключове слово return для останнього виразу в функції.

Дивіться також

Перегляньте це для додаткової інформації: