Разбиране на функциите в Rust

Разбиране на функциите в Rust
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Функциите са основни програмни конструкции, тъй като те полагат основата за повторно използване на кода и улесняват модулното програмиране. Функциите са самостоятелни блокове код, които изпълняват специфични задачи. Те могат да получават входни данни под формата на аргументи и да връщат стойност.





Rust предоставя функции за организация на кода, капсулиране и повторно използване на кода.





мога ли да играя моите ps3 игри на моя ps4
MAKEUSEOF ВИДЕО НА ДЕНЯ

Дефиниране на функции в Rust

  Преглед на функциите на Jetbrains Rust

Функциите на Rust са много подобни функции на всеки друг език за програмиране , въпреки че има малки разлики, които ще трябва да разберете.





Ще дефинирате функции за вашите програми Rust с fn ключова дума, последвана от името на функцията, аргументи по избор и връщане по избор тип данни .

 // function that neither takes in arguments nor returns a value 
fn function_name() {
    // function body here
}

Ето една проста функция на Rust, която не приема никакви аргументи и не връща никакви стойности.



 fn a_function(){ 
    let x = 3;
    println!("{}", x)
}

a_функция е проста функция на Rust, която отпечатва променливата х .

Сигнатури на Rust Function

Сигнатурите на функциите са начин за наименуване на функции и описване на техните аргументи и връщани типове, без да се включва тяло на функция. Функционалните подписи са полезни за документиране на API на библиотеки на Rust.





Ето примерен подпис на функция Rust:

 fn name() 

fn greet(name: &str)

The име е минимален функционален подпис, докато поздравявам подписът указва, че функцията приема един аргумент, име , от тип низ ( &str ).





Деклариране на функции с аргументи и връщани стойности

Функциите на Rust могат да приемат много аргументи и ограничението не е изрично дефинирано. Функциите с аргументи обикновено са по-гъвкави, тъй като могат да приемат стойности от други функции и части от кода.

Ето типичния модел на функция Rust, която приема аргументи:

 fn function_name(arg: type, arg2: type) { 
    // function body here
}

Типът аргумент на функцията може да бъде вграден тип в Rust или потребителски тип от вашата програма.

защо chrome изтегля толкова бавно

Ето пример за проста функция, която приема две цели числа като аргументи:

 fn add_numbers(x: i32, y: i32) { 
    println!("{}", x + y);
}

The добавяне на числа функцията приема две 32-битови цели числа и отпечатва сумата от целите числа.

Функциите на Rust могат да връщат множество стойности; ще трябва да посочите връщания тип(ове) и да върнете стойностите на типа от функцията.

 fn function_name(arg: type, arg2: type) -> (type, type) { 
    // function body here
    return arg, arg2
}

Ето една функция, която приема низ и 32-битово цяло число като аргумент и връща аргументите като кортеж.

 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

The низ_и_цяло число функцията приема низ и 32-битово цяло число, връщайки ги като кортеж. Можете да върнете само една стойност от Rust функция.

Можете да пропуснете връщане ключова дума, когато връща крайния израз от функция, за да направи кода по-сбит.

 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

// the functions are equivalent

fn str_and_int(s: String, n: i32) -> (String, i32) {
    (s, n)
}

Тези две функции имат едно и също поведение, тъй като и двете приемат низ и цяло число и връщат тези аргументи като кортеж.

Извикване на Rust функции

Можете да извикате една функция от друга, като напишете нейното име, последвано от стойности, които искате да й предадете в скоби:

 fn add_numbers(x: i32, y: i32) -> i32 { 
    x + y
}

fn main() {
    let result = add_numbers(3, 5);
    println!("The result is {}", result); // Output: The result is 8
}

The основен извиквания на функции добавяне на числа , предавайки му две цели числа. Той присвоява резултата от функцията на променлива, резултат .

  Пример за резултат от извикване на функции на Rust

Можете да декларирате функции за Rust Structs

Можете да декларирате функции в структурите на Rust. Те стават методи за структурата, която има достъп до нея и я променя.

Rust не е изцяло обектно-ориентиран, но предоставя структури за групиране на свързани данни. Можете да работите за прилагане на OOP концепции в Rust, като използвате структури с методи.