Error de compilación al imprimir un entero en Rust

Nilesh Katuwal 21 junio 2023
  1. Error de compilación en Rust
  2. Acceder a un campo en un tipo primitivo en Rust
  3. Añadir dos enteros en Rust
Error de compilación al imprimir un entero en Rust

Este artículo trata sobre cómo evitar errores de compilación al intentar imprimir un número entero en Rust v0.13.0.

Error de compilación en Rust

Un error de compilación ocurre cuando un compilador tiene dificultades para construir una parte del código fuente de un programa de computadora, ya sea debido a fallas en el código o, más a menudo, debido a problemas del compilador.

Para evitar el error de compilación en Rust v0.13.0, debemos dar explícitamente un tipo entero.

Código de ejemplo:

fn main(){
    let x = 10;
    println!("x = {}", x);
}

Producción :

x = 10

El código funcionará en el nuevo compilador con Rust v0.13.0; no necesitamos especificar i32 explícitamente. Sin embargo, podemos usar i32 para imprimir el entero sin error de compilación.

Código de ejemplo:

fn main(){
    let x: i32 = 15;
    println!("x = {}", x);
}

Producción :

x = 15

Acceder a un campo en un tipo primitivo en Rust

Ejemplo de código con error:

let x: u32 = 0;
println!("{}", x.foo);

El código anterior tiene errores y no imprime los números enteros.

El código correcto para imprimir el valor de los números enteros es:

// We declare a struct called `Foo`, which contains two fields:
struct Foo {
    x: u32,
    y: i64,
}

fn main()
{
    let variable = Foo { x: 0, y: 1 };
    println!("x: {}, y: {}", variable.x, variable.y);

}

Declaramos una estructura llamada Foo, que contiene dos campos: x e y. Creamos una instancia de Foo para acceder a sus campos.

Producción :

x: 0, y: 1

Añadir dos enteros en Rust

El error de compilación se puede evitar utilizando el siguiente código para sumar dos enteros e imprimir su resultado.

Código de ejemplo:

fn main() {
  let x: i32 = 20;
  let y: i32 = 40;

  let sum = return_sum(x,  y);
  println!("The sum is = {}", sum);
}

fn return_sum(i: i32, j: i32) -> i32 {
  i + j
}

Producción :

The sum is = 60