Estoy usando WSL y en el proyecto además de crearse Cargo.toml, se inicializó GIt
Que bonita sorpresa 😃
Inicia tu camino con Rust
Bienvenida al Curso Básico de Rust
Rust: un lenguaje amado por los desarrolladores
Instalando Rust en MacOS o Linux
Instalando Rust en Windows
Domina las bases de Rust
Creando un nuevo proyecto en Rust
Variables de Rust y cómo mostrarlas en pantalla
Recibiendo datos del usuario
Condicionales
Ciclo Loop
Primer proyecto: calculadora digital
Descripción del proyecto
Cargo (dependencias)
¿Qué significa unwrap?
Creando nuestra calculadora
Estructuras y funciones en Rust
Arrays y Ciclo For en Rust
Las funciones en Rust
Segundo proyecto: videojuego de texto
Descripción del proyecto: videojuego de texto
Creación y descripción del entorno
Estructuras básicas, narrativa y opciones de Rust
Interacción con el entorno y datos del usuario
Esto es solo el comienzo
Únete a la comunidad, Rustacean
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Hector Pulido
Cuando instalas un nuevo lenguaje de programación o tecnología, la primera tarea es realizar el conocido “Hola Mundo” para corroborar que todo esté funcionando correctamente.
En Rust, crear tu primer proyecto es súper sencillo. Basta con utilizar el comando cargo new
. El CLI de Rust creará los siguientes archivos:
De arriba hacia abajo:
src
: Directorio principal con todo el código fuente del proyecto.main.rs
: Archivo principal para lanzar el proyecto..gitignore
: Archivo para indicarle a GIT qué archivos/directorios ignorar.Cargo.toml
: Archivo que contiene la metadata y dependencias del proyecto.El archivo main.ts
contiene un código muy sencillo para ejecutar tu primer proyecto en Rust.
fn main() {
println!("Hello, world!");
}
Con el comando cargo run
, deberías visualizar Hello, world! en la terminal de comandos.
¡Felicidades! Ya has realizado tu primera ejecución de un proyecto en Rust.
Contribución creada por: Kevin Fiorentino.
Aportes 28
Preguntas 5
Estoy usando WSL y en el proyecto además de crearse Cargo.toml, se inicializó GIt
Que bonita sorpresa 😃
Si trabajan con windows les aconsejo hacerlo con wsl ya que visual studio build da dolor de cabeza y muchos problemas
Felicidades a todos por su tal vez primer hola mundo en Rust… Bueno, Hola Platzi.
Si ya han creado la carpeta del proyecto pueden hacer cargo init
en vez de cargo new <project>
para que no les cree una subcarpeta sino que ponga el src
y el Cargo.toml
directamente en la carpeta donde se encuentran.
La funcion main() es una funcion especial en el entorno de Rust, esta funcion es la encargada de arrancar la aplicacion en todos los programas o aplicaciones desarrollados con este lenguaje
PD: Si estas en linux y te sale el error: linker cc
not found. Sigan este link: https://stackoverflow.com/questions/52445961/how-do-i-fix-the-rust-error-linker-cc-not-found-for-debian-on-windows-10
Si alguien tiene el problema de no poder compilar aqui se explica como solucionarlo en WSL
Tenía un error linker
ccnot found
.
Se solucionó al hacer sudo apt-get update
y sudo apt install build-essential
Un hack pueden abrir la terminal con ctrl + ñ
Si estan en windows con wsl o linux y les sale el error de :
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
Usa este comando de linux para solucionarlo
sudo apt install build-essential
Consejo para los que estan tomando este curso de absoluto cero y es la primera vez que trabajan con VisualStudioCode (VSC):
no olviden guardar los cambios con ctrl + s para que se muestren esos cambios en la terminal, veran que se ilumina un punto blanco cuando le hacen cualquier tipo de cambio.
lo menciono porque en todos los cursos de cualquier lenguaje siempre omiten decir que se debe guardar y con que teclas se ejecuta el guardado 😊
@hackquiarom
gracias
Para ejecutar el proyecto desde la terminal escribir
cargo run
Resultado
Compiling platzi-curso v0.1.0 (/rust/platzi-curso)
Finished dev [unoptimized + debuginfo] target(s) in 0.28s
Running `target/debug/platzi-curso`
Hello, world!
y la estructura del proyecto muestra todo esto
(base) yomero@yomero-machina:~/rust/platzi-curso$ ls -lR
.:
total 16
-rw-rw-r-- 1 yomero yomero 156 ago 20 14:53 Cargo.lock
-rw-rw-r-- 1 yomero yomero 181 ago 20 14:51 Cargo.toml
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:51 src
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 target
./src:
total 4
-rw-rw-r-- 1 yomero yomero 45 ago 20 14:51 main.rs
./target:
total 8
-rw-rw-r-- 1 yomero yomero 177 ago 20 14:53 CACHEDIR.TAG
drwxrwxr-x 7 yomero yomero 4096 ago 20 14:56 debug
./target/debug:
total 3792
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 build
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:56 deps
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 examples
drwxrwxr-x 5 yomero yomero 4096 ago 20 14:56 incremental
-rwxrwxr-x 2 yomero yomero 3859376 ago 20 14:56 platzi-curso
-rw-rw-r-- 1 yomero yomero 117 ago 20 14:56 platzi-curso.d
./target/debug/build:
total 0
./target/debug/deps:
total 3784
-rw-rw-r-- 1 yomero yomero 0 ago 20 14:53 libplatzi_curso-1e07cfa96523b6c4.rmeta
-rw-rw-r-- 1 yomero yomero 0 ago 20 14:53 libplatzi_curso-4b9f6b89c3f4a846.rmeta
-rw-rw-r-- 1 yomero yomero 223 ago 20 14:53 platzi_curso-1e07cfa96523b6c4.d
-rw-rw-r-- 1 yomero yomero 223 ago 20 14:53 platzi_curso-4b9f6b89c3f4a846.d
-rwxrwxr-x 2 yomero yomero 3859376 ago 20 14:56 platzi_curso-b3fcc9d8587c7101
-rw-rw-r-- 1 yomero yomero 217 ago 20 14:56 platzi_curso-b3fcc9d8587c7101.d
./target/debug/examples:
total 0
./target/debug/incremental:
total 12
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 platzi_curso-1kd1hfoqtyd2s
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:56 platzi_curso-30uhnpr5x5v5k
drwxrwxr-x 3 yomero yomero 4096 ago 20 14:53 platzi_curso-37u0s7tmemup9
./target/debug/incremental/platzi_curso-1kd1hfoqtyd2s:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 s-gcrgcb42eg-1x3k6fj-24kvvvm5mw5xd
-rwx------ 1 yomero yomero 0 ago 20 14:53 s-gcrgcb42eg-1x3k6fj.lock
./target/debug/incremental/platzi_curso-1kd1hfoqtyd2s/s-gcrgcb42eg-1x3k6fj-24kvvvm5mw5xd:
total 64
-rw-rw-r-- 1 yomero yomero 34162 ago 20 14:53 dep-graph.bin
-rw-rw-r-- 1 yomero yomero 20971 ago 20 14:53 query-cache.bin
-rw-rw-r-- 1 yomero yomero 37 ago 20 14:53 work-products.bin
./target/debug/incremental/platzi_curso-30uhnpr5x5v5k:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:56 s-gcrgelmw9i-qjkck4-3c0e61urk8r6c
-rwx------ 1 yomero yomero 0 ago 20 14:56 s-gcrgelmw9i-qjkck4.lock
./target/debug/incremental/platzi_curso-30uhnpr5x5v5k/s-gcrgelmw9i-qjkck4-3c0e61urk8r6c:
total 168
-rw-rw-r-- 1 yomero yomero 9536 ago 20 14:56 122jwq2ytdwpwna5.o
-rw-rw-r-- 1 yomero yomero 4608 ago 20 14:56 13ae89ygf1rtd8xc.o
-rw-rw-r-- 1 yomero yomero 6984 ago 20 14:56 1wwi7m72ahqetgwr.o
-rw-rw-r-- 1 yomero yomero 3160 ago 20 14:56 1ytu7juna3q1uq8z.o
-rw-rw-r-- 1 yomero yomero 7648 ago 20 14:56 36t22ymn6gv0dede.o
-rw-rw-r-- 1 yomero yomero 4768 ago 20 14:56 4w005rjywvu38mtx.o
-rw-rw-r-- 1 yomero yomero 79487 ago 20 14:56 dep-graph.bin
-rw-rw-r-- 1 yomero yomero 4128 ago 20 14:56 in4aoc5qp85yj9g.o
-rw-rw-r-- 1 yomero yomero 3672 ago 20 14:56 pthzp219cra87mm.o
-rw-rw-r-- 1 yomero yomero 24473 ago 20 14:56 query-cache.bin
-rw-rw-r-- 1 yomero yomero 465 ago 20 14:56 work-products.bin
./target/debug/incremental/platzi_curso-37u0s7tmemup9:
total 4
drwxrwxr-x 2 yomero yomero 4096 ago 20 14:53 s-gcrgcb42cn-15p76a6-12g2dswvbo7a6
-rwx------ 1 yomero yomero 0 ago 20 14:53 s-gcrgcb42cn-15p76a6.lock
./target/debug/incremental/platzi_curso-37u0s7tmemup9/s-gcrgcb42cn-15p76a6-12g2dswvbo7a6:
total 56
-rw-rw-r-- 1 yomero yomero 28710 ago 20 14:53 dep-graph.bin
-rw-rw-r-- 1 yomero yomero 19797 ago 20 14:53 query-cache.bin
-rw-rw-r-- 1 yomero yomero 37 ago 20 14:53 work-products.bin
```
Si estás en Mac y te aparece
error: linking with `cc` failed: exit status: 1
Intenta, en tu terminal, usar el comando
xcode-select --install
Puede que te estén faltando unas dependencias para compilar 😊
para crear un proyecto desde la terminal
cargo new platzi-curso
y el resultado es
Created binary (application) `platzi-curso` package
Siempre es emocionante escribir “hola mundo”
Para los que vienen de Python. fn main() {}
en Rust es como usar if __name__ == '__main__':
. Aunque cómo dijo el profesor en los comentarios, eso se puede cambiar.
Si están usando Neovim cómo yo, les recomiendo usar coc-rust-analyzer para que nos ayude a detectar errores y autocompletar el código.
¡Que gran forma de iniciar!
No se escucha
si quiere abrir la terminal con atajo de teclado haz lo siguiente:
// teclado español
ctrl + ñ
// teclado ingles
ctrl + `
Es bastante facil empezar un proyecto en Rust, a seguir
fn main() {
let name: &str = "Maycol";
let age: u8 = 31;
let min_temp: i8 = -21;
let max_temp: i8 = 38;
say_hello(name, age);
print_temp(min_temp, max_temp);
}
fn say_hello(name: &str, age: u8) {
return println!("Hello {}, tu edad es de {}", name, age)
}
fn print_temp(min_temp: i8, max_temp: i8) {
return println!("La temperatura maxima en Deggendorf fue de {} y la mas alta fue de {}", min_temp, max_temp)
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?