Las funciones de Rust tienen muchos matices que difieren de otros lenguajes. Aprenda todo sobre su sintaxis aquí.

Las funciones son construcciones de programación esenciales, ya que sientan las bases para la reutilización del código y facilitan la programación modular. Las funciones son bloques de código autónomos que realizan tareas específicas. Pueden recibir entradas, en forma de argumentos, y devolver un valor.

Rust proporciona funciones para la organización, encapsulación y reutilización del código.

Definición de funciones en Rust

Las funciones de óxido son muy parecidas funciones en cualquier otro lenguaje de programación, aunque hay pequeñas diferencias que deberá comprender.

Definirá funciones para sus programas Rust con el fn palabra clave seguida del nombre de la función, argumentos opcionales y un retorno opcional tipo de datos.

// función que no toma argumentos ni devuelve un valor
fn nombre_función() {
// cuerpo de la función aquí
}

Aquí hay una función de Rust simple que no acepta ningún argumento ni devuelve ningún valor.

instagram viewer
fn una_función(){
sea ​​x = 3;
imprimir!("{}", X)
}

Una función es una función de Rust simple que imprime la variable X.

Firmas de funciones de óxido

Las firmas de función son una forma de nombrar funciones y describir sus argumentos y tipos de retorno, sin incluir un cuerpo de función. Las firmas de funciones son útiles para documentar las API de las bibliotecas de Rust.

Aquí hay un ejemplo de la firma de la función Rust:

nombre fn()

fn saludar (nombre: &str)

El nombre función es una firma de función mínima, mientras que la función saludar firma especifica que la función toma un solo argumento, nombre, de tipo cadena (&str).

Declaración de funciones con argumentos y valores de retorno

Las funciones de Rust pueden admitir muchos argumentos y el límite no está definido explícitamente. Las funciones con argumentos son generalmente más flexibles ya que pueden tomar valores de otras funciones y partes del código.

Aquí está el modelo típico de una función de Rust que toma argumentos:

fn nombre_función (arg: tipo,arg2: tipo) {
// cuerpo de la función aquí
}

El tipo de argumento de la función puede ser un tipo integrado de Rust o un tipo personalizado de su programa.

Aquí hay un ejemplo de una función simple que toma dos números enteros como argumentos:

fn suma_números (x: i32, y: i32) {
imprimir!("{}", x + y);
}

El añadir_números La función toma dos enteros de 32 bits e imprime la suma de los enteros.

Las funciones de Rust pueden devolver múltiples valores; tendrá que especificar los tipos de retorno y devolver los valores del tipo de la función.

fn nombre_función (arg: tipo,arg2: tipo) -> (tipo, tipo) {
// cuerpo de la función aquí
devolver argumento, argumento2
}

Aquí hay una función que toma una cadena y un entero de 32 bits como argumento y devuelve los argumentos como una tupla.

fn cadena_y_entero (s: Cadena, n: i32) -> (Cadena, i32) {
devolver (s, n);
}

El cadena_y_entero La función toma una cadena y un entero de 32 bits, devolviéndolos como una tupla. Solo puede devolver un único valor de una función de Rust.

Puedes dejar de lado el devolver palabra clave al devolver la expresión final de una función, para que el código sea más conciso.

fn cadena_y_entero (s: Cadena, n: i32) -> (Cadena, i32) {
devolver (s, n);
}

// las funciones son equivalentes

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

Estas dos funciones tienen el mismo comportamiento ya que ambas toman una cadena y un entero y devuelven esos argumentos como una tupla.

Llamando a las funciones de Rust

Puede llamar a una función desde otra escribiendo su nombre seguido de los valores que desea pasarle entre paréntesis:

fn suma_números (x: i32, y: i32) -> i32 {
x + y
}

fn principal() {
let resultado = sumar_numeros(3, 5);
imprimir!("El resultado es {}", resultado); // Salida: El resultado es 8
}

El principal llamadas de función añadir_números, pasándole dos enteros. Asigna el resultado de la función a una variable, resultado.

Puede declarar funciones para Rust Structs

Puede declarar funciones dentro de las estructuras de Rust. Estos se convierten en métodos para la estructura que pueden acceder y modificarla.

Rust no está puramente orientado a objetos, pero proporciona estructuras para agrupar datos relacionados. Puede trabajar para implementar conceptos de programación orientada a objetos en Rust utilizando estructuras con métodos.