Ir al contenido principal

Rust: un vistazo más

 


En este post continuaremos con lo visto en el post anterior. Como hemos visto, éste lenguaje es parecido a lenguajes como Python o sin exagerar a Golang.
Crear un hola mundo no implica saber matemática avanzada.
holamundo.rs
fn main(){
  println!("Alquimista de código");
}
Las estructuras de control son las que se usan normalmente en cualquier lenguaje:
1. Secuenciales.
2. Condicionales.
3. Iterativas.

estructuras.rs
fn main(){
  println!("\tProgramando en Rust");
 
  if 45 > 33 && 56 == 66{
      println!("A");
  }else if !false || 7 > 4{
      println!("B");
  }else{
      println!("C");
  }

  let entrada = match codigo{
    "A" => {println!("Aqui no"); "Aqui no"},
    "B" => "Aqui tampoco",
    "C" => "Aqui menos",
    _ => "La entrada es por la puerta de frente!"
  };
  println!("Salida: {}",entrada);

  const TAM = 10;
  let mut contador = TAM;
  
  while contador > 0{
    contador-=1;
    println!("contador {}",contador);
  }
  contador = 0;

  loop{
    contador+=1;
    println!("contador {}",contador);
    if contador == 5{
      break;
    }
  }

  for n in 0..10{
    println!("No. {}",n);
  }

}

En el ejemplo anterior podemos observar las estructuras de control y cómo se declaran las constantes y las variables "mutables".
Cualquier lenguaje de programación que se respete debe tener funciones para manipular cadenas y/o realizar operaciones matemáticas, y Rust no podía ser la excepción.
matematicas.rs
fn main(){
    let x = 9;
    let y = 2;
	println!("Suma de {:?} y {:?} es {:?}",x,y,x+y);
	println!("Resta de {:?} y {:?} es {:?}",x,y,x-y);
	println!("Producto de {:?} y {:?} es {:?}",x,y,x*y);
	println!("Division de {:?} y {:?} es {:?}",x,y,x/y);
	println!("Residuo de {:?} y {:?} es {:?}",x,y,x%y);
	println!("Absoluto  de -5: {:?}",-5i32.abs());
	println!("Potencia de 9: {:?}",9i32.pow(2));
	println!("Raiz de 36: {:?}",36f64.sqrt());
	println!("Cubo de 3: {:?}",3f64.cbrt());
	println!("Redondeo de 1.23333: {:?}",1.23333f64.round());
	println!("Redondeo de 1.25643: {:?}",1.25643f64.ceil());
	println!("e^x: {:?}",2f64.exp());
	println!("ln: {:?}",2f64.ln());
	println!("log10(): {:?}",2f64.log10());
	println!("x a radianes: {:?}",90f64.to_radians());
	println!("x a grados: {:?}",3.1415f64.to_degrees());
	println!("Max: {:?}",4f64.max(5f64));
	println!("Min: {:?}",9f64.min(6f64));
	println!("Seno: {:?}",3.1415f64.sin());
	println!("Coseno: {:?}",3.1415f64.cos());
	println!("Tangente: {:?}",3.1415f64.tan());
}

cadenas.rs
fn main(){
  cadenas();	
}

fn cadenas(){
	let cadena = "ABC";
	println!("Cadena: {}",cadena);

	if cadena == "BCA"{
		println!("Aqui no pasa");
	}else if cadena == "ABD"{
		println!("Aqui no pasa");
	}else{
		println!("Aqui pasa");
	}

	let hola = String::from("Hola, mundo");
	println!("{}",hola);

	let mut cadena_mutable = String::from("FERROCARRILERO");
	cadena_mutable.push_str(" & ");
	cadena_mutable.push_str("JOHN CALLAGER!");
	println!("Cadena: {}",cadena_mutable);

        println!("{:?}",cadena);
        println!("{}",cadena.replace("B","-"));
        if cadena.len() == 3{
           println!("La longitud de la cadena es de 3 caracteres");
        }
        let holamundo = "Hola, mundo!!";
        for n in holamundo.split_whitespace(){
          println!("{}",n);
        }

        for n in cadena_mutable.split("&"){
          println!("{}",n.trim());
        }
        

}
En el primer programa (matematicas.rs) podemos observar algunas de las funciones(sin, sqrt, abs, etc.) y operaciones matemáticas (+,-,/,*,%) que podemos realizar. En el segundo (cadenas.rs), observamos algunas de las operaciones con cadena que permite el lenguaje (trim, split, replace, etc.).
ejecuta.sh
#!/bin/bash

# Compilar y ejecutar programa Rust 

echo Compilando $1
rustc $1
nombre=$1
ejecutable="${nombre##*/}"
echo Archivo generado y ejecutable ${ejecutable%.*}
./${ejecutable%.*}
Este programa en Bash nos servirá para compilar y ejecutar. Para usarlo abrimos una terminal y tecleamos:
$ ./ejecuta.sh programa.rs

Hasta el próximo post.
Enlaces:
https://tourofrust.com/00_es.html
https://lucumr.pocoo.org/2015/5/27/rust-for-pythonistas/

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...