Rust๋กœ ๋งŒ๋“œ๋Š” ์ˆซ์ž ์ถ”๋ฆฌ ๊ฒŒ์ž„

2024. 10. 8. 16:38ยทProgramming Language/RUST

๐Ÿ“ ์ถ”๋ฆฌ ๊ฒŒ์ž„

RUST๋กœ ๊ณ ์ „์ ์ธ ์ž…๋ฌธ์ž์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ์ธ ์ถ”๋ฆฌ ๊ฒŒ์ž„์„ ๊ตฌํ˜„ํ•ด๋ณด์ž.

ํ”„๋กœ์ ํŠธ ์„ค๋ช…

  1. ์ด ํ”„๋กœ๊ทธ๋žจ์€ 1~100 ์‚ฌ์ด์˜ ์ž„์˜์˜ ์ •์ˆ˜๋ฅผ ์ƒ์„ฑํ•จ
  2. ๋‹ค์Œ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์— ์ถ”๋ฆฌํ•œ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•จ
  3. ํ”„๋กœ๊ทธ๋žจ์€ ์ž…๋ ฅ๋ฐ›์€ ์ถ”๋ฆฌ๊ฐ’์ด ์ •๋‹ต๋ณด๋‹ค ๋†’๊ฑฐ๋‚˜ ๋‚ฎ์€์ง€๋ฅผ ์•Œ๋ ค์คŒ
  4. ์ถ”๋ฆฌ๊ฐ’์ด ์ •๋‹ต์ด๋ผ๋ฉด ์ถ•ํ•˜ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์ข…๋ฃŒํ•จ

 

๐Ÿ†• ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

์ฒซ ๋ช…๋ น์–ด์˜ --bin ํ”Œ๋ž˜๊ทธ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ์šฉ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ด๋‹ค.

cargo new guessing_game --bin

cd guessing_game

code .

 

 

๐Ÿ“ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

์ˆซ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ

use std::io;

fn main() {
    println!("Guess the number!");

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

 

๋Ÿฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ์ž ์ž…์ถœ๋ ฅ์„ ์œ„ํ•ด์„œ๋Š” io ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์Šค์ฝ”ํ”„๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.

use std::io;

`:: `๋Š” ๊ฒฝ๋กœ ์—ฐ์‚ฐ์ž๋กœ ๋ถˆ๋ฆฌ๋ฉฐ, ๋ชจ๋“ˆ, ํŠธ๋ ˆ์ดํŠธ, ์—ด๊ฑฐํ˜• ๋ฐ ํ•จ์ˆ˜ ๋“ฑ์„ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

println!("Guess the number!");
println!("Please input your guess.");

`println!`์€ ๋ฌธ์ž๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋งคํฌ๋กœ์ด๋‹ค.

 

๋Ÿฌ์ŠคํŠธ์—์„œ ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆ๋ณ€์ด๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ€๋ณ€๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” `mut`์ด๋ผ๊ณ  ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.

let mut guess = String::new();

์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ€๋ณ€๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.

 

io::stdin().read_line(&mut guess)
    .expect("Failed to read line");

read_line์— &mut guess ๋ฅผ ์ธ์ž๋กœ ๋„˜๊ธด๋‹ค.

๋ณ€์ˆ˜ guess๊ฐ€ ๊ฐ€๋ณ€ ๋ณ€์ˆ˜์ด์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ์ž…๋ ฅํ•œ ๊ฐ’์„ ๋ฌธ์ž์—ด์— ์ €์žฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

read_line์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ io::Result ์ด๋‹ค.

io::Result ๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ์ด๋ฅผ ์œ„ํ•œ variants๋Š” Err์™€ Ok๊ฐ€ ์žˆ๋‹ค.

io::Result ์ธ์Šคํ„ด์Šค๋Š” expect ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , io::Result ์ธ์Šคํ„ด์Šค์˜ variants์— ๋”ฐ๋ผ ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด “Failed to read line”์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

println!("You guessed: {}", guess);

`println!` ๋ณ€๊ฒฝ์ž(placeholder)๋ฅผ ์ด์šฉํ•ด ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

{} ์œ„์น˜์— guess์˜ ๊ฐ’์ด ํ‘œ์‹œ๋œ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž!

๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ์ˆซ์ž 3์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ถ”๋ฆฌ๊ฐ’ ์ฒ˜๋ฆฌํ•˜๊ธฐ

1. rand ํฌ๋ ˆ์ดํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋Ÿฌ์ŠคํŠธ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋žœ๋ค ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฏ€๋กœ rand ํฌ๋ ˆ์ดํŠธ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ด ๋•Œ, ํฌ๋ ˆ์ดํŠธ๋Š” ๋Ÿฌ์ŠคํŠธ ์ฝ”๋“œ์˜ ๋ฌถ์Œ(package)์ด๋‹ค.

 

๋จผ์ €, Cargo.toml ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด rand ํฌ๋ ˆ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

[dependencies]
rand = "0.3.14"

 

์ดํ›„, build๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์™ธ๋ถ€ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Cargo.toml์—๋Š” rand๋งŒ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ, rand๋Š” libc์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— libc๋„ ํ•จ๊ป˜ ๋‹ค์šด ๋ฐ›์•„์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ Cargo๊ฐ€ ์˜์กด์„ฑ ๊ด€๋ฆฌ์— ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

2. ์ž„์˜ ์ˆซ์ž(์ •๋‹ต) ์ƒ์„ฑํ•˜๊ธฐ

extern crate rand;

use std::io;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1, 101);

    println!("The secret number is: {}", secret_number);

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

๋งจ ์ฒซ ๋ฒˆ์งธ ์ค„์— extern crate rand;๋ฅผ ์ถ”๊ฐ€ํ•ด ์™ธ๋ถ€์— ์˜์กดํ•˜๋Š” ํฌ๋ ˆ์ดํŠธ๊ฐ€ ์žˆ์Œ์„ ์•Œ๋ฆฐ๋‹ค.

๋‹ค์Œ, `use rand::Rng;`๋ฅผ ์ถ”๊ฐ€ํ•ด ์ž„์˜์˜ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

์ค‘๊ฐ„์— ์ถ”๊ฐ€๋œ ์ฝ”๋“œ์ธ ๋‹ค์Œ ์ฝ”๋“œ๋Š” ์ž„์˜ ์ •์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

rand::thread_rng ํ•จ์ˆ˜๋Š” OS๊ฐ€ ์‹œ๋“œ(seed)๋ฅผ ์ •ํ•˜๊ณ  ํ˜„์žฌ ์Šค๋ ˆ๋“œ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ์ •์ˆ˜์ƒ์„ฑ๊ธฐ๋ฅผ ๋Œ๋ ค ์ค€๋‹ค.
gen_range() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด 1๊ณผ 100 ์‚ฌ์ด์˜ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•ด secret_number์— ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

let secret_number = rand::thread_rng().gen_range(1, 101);

 

์ด์ œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ์ž„์˜์˜ ์ˆซ์ž๊ฐ€ ์ž˜ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

 

 

3. ์ •๋‹ต๊ณผ ์ถ”๋ฆฌ๊ฐ’ ๋น„๊ตํ•˜๊ธฐ

extern crate rand;

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1, 101);

    println!("The secret number is: {}", secret_number);

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("Failed to read line");

    let guess: u32 = guess.trim().parse()
        .expect("Please type a number!");

    println!("You guessed: {}", guess);

    match guess.cmp(&secret_number) {
        Ordering::Less    => println!("Too small!"),
        Ordering::Greater => println!("Too big!"),
        Ordering::Equal   => println!("You win!"),
    }
}

use std:cmp::Ordering์€ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” cmp ๋ชจ๋“ˆ์˜ Ordering ์—ด๊ฑฐํ˜•์„ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ์ด๋‹ค.

Ordering์˜ ๊ฐ’์€ Less, Greater, Equal์ด๋‹ค.

์ด๋ฅผ ์ด์šฉํ•ด ๋งจ ๋งˆ์ง€๋ง‰์— `Ordering` ํƒ€์ž…์„ ์ด์šฉํ•ด ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

์ด ๋•Œ match ํ‘œํ˜„์‹์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, match๋Š” ์ฃผ์–ด์ง„ ๊ฐ’์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.

 

์ค‘๊ฐ„์— ์ถ”๊ฐ€๋œ ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

let guess: u32 = guess.trim().parse()
        .expect("Please type a number!");

๋จผ์ €, ๋Ÿฌ์ŠคํŠธ์—์„œ๋Š” ๋ฌธ์ž์—ด๊ณผ ์ •์ˆ˜ํ˜•์„ ๋น„๊ตํ•  ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ, ์•ž์„œ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ ๋ฐ›์•˜๋˜ `guess`๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

trim ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋ฉฐ ๋ถ™์€ ๊ฐœํ–‰๋ฌธ์ž(\n)๋ฅผ ์ œ๊ฑฐํ•ด์ค€๋‹ค.

parse ๋ฉ”์†Œ๋“œ๋Š” ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ์ˆซ์žํ˜•์œผ๋กœ ํŒŒ์‹ฑํ•œ๋‹ค.

์ด ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ •์ˆ˜ํ˜•์„ ๋ณ€ํ™˜ํ•˜๋ฏ€๋กœ let guess: u32์ฒ˜๋Ÿผ ์ •ํ™•ํ•œ ํƒ€์ž…์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.

parse ๋ฉ”์†Œ๋“œ๋Š” Result ํƒ€์ž…์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋งŒ์•ฝ ๋ฌธ์ž์—ด์ด ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋˜๋ฉด ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— Err ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ expect์— ์ž‘์„ฑํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ด์ œ ์‹คํ–‰์„ ํ•ด๋ณด์ž!

์—ฌ๋Ÿฌ ์ž…๋ ฅ ๊ฐ’์„ ํ†ตํ•ด ์ง€๊ธˆ๊นŒ์ง€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ–ˆ๋‹ค!

 

 

๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์ถ”๋ฆฌ ํ—ˆ์šฉ

extern crate rand;

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1, 101);

    println!("The secret number is: {}", secret_number);

    loop {
        println!("Please input your guess.");

        let mut guess = String::new();

        io::stdin().read_line(&mut guess)
            .expect("Failed to read line");

        let guess: u32 = guess.trim().parse()
            .expect("Please type a number!");

        println!("You guessed: {}", guess);

        match guess.cmp(&secret_number) {
            Ordering::Less    => println!("Too small!"),
            Ordering::Greater => println!("Too big!"),
            Ordering::Equal   => {
                println!("You win!");
                break;
            }
        }
    }
}

๋ฌดํ•œ ๋ฐ˜๋ณต์„ ์ œ๊ณตํ•˜๋Š” loop ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๋˜ํ•œ, ๋น„๊ตํ•œ ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ break๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•œ๋‹ค.

 

 

์ž˜๋ชป๋œ ์ž…๋ ฅ๊ฐ’ ์ฒ˜๋ฆฌํ•˜๊ธฐ

์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋ฉด ๋ฌด์‹œํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ์ถ”๋ฆฌ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ด๋ณด์ž.

extern crate rand;

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1, 101);

    println!("The secret number is: {}", secret_number);

    loop {
        println!("Please input your guess.");

        let mut guess = String::new();

        io::stdin().read_line(&mut guess)
            .expect("Failed to read line");

        let guess: u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(_)  => continue,
        };

        println!("You guessed: {}", guess);

        match guess.cmp(&secret_number) {
            Ordering::Less      => println!("Too Small!"),
            Ordering::Greater   => println!("Too Big!"),
            Ordering::Equal => {
                println!("You Win!");
                break;
            }
        }
    }
}

์ž…๋ ฅ๋œ ๊ฐ’์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ–ˆ๋‹ค.

match ํ‘œํ˜„์‹์„ ํ†ตํ•ด Result ํƒ€์ž…์— ๋Œ€ํ•œ ํŒจํ„ด์„ ์ž‘์„ฑํ–ˆ๋‹ค.

์ด๋Š” ์ •์ˆ˜๋กœ์˜ ๋ณ€ํ™˜์ด ์„ฑ๊ณตํ•˜๋ฉด parse๊ฐ€ ์ƒ์„ฑํ•œ num๊ฐ’์„ ๋Œ๋ ค์ฃผ๊ณ , Err๋ผ๋ฉด continue๊ฐ€ ๋˜๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

 

์ด์ œ, ์ •๋‹ต ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ์ถ”๋ฆฌ ๊ฒŒ์ž„์ด ์™„์„ฑ๋œ๋‹ค!

 

 

โญ ์ตœ์ข… ์ฝ”๋“œ

extern crate rand;

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1, 101);

    loop {
        println!("Please input your guess.");

        let mut guess = String::new();

        io::stdin().read_line(&mut guess)
            .expect("Failed to read line");

        let guess: u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(_)  => continue,
        };

        println!("You guessed: {}", guess);

        match guess.cmp(&secret_number) {
            Ordering::Less      => println!("Too Small!"),
            Ordering::Greater   => println!("Too Big!"),
            Ordering::Equal => {
                println!("You Win! The secret nember was {}", secret_number);
                break;
            }
        }
    }
}

์ด๋ ‡๊ฒŒ ๋Ÿฌ์ŠคํŠธ์˜ ๊ฐœ๋…์„ ํ›‘์–ด๋ณด๊ธฐ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ์ถ”๋ฆฌ๊ฒŒ์ž„์„ ์™„์„ฑํ–ˆ๋‹ค!

 

 

 


์ฐธ๊ณ  ์ž๋ฃŒ

https://rinthel.github.io/rust-lang-book-ko/ch02-00-guessing-game-tutorial.html

 

์ถ”๋ฆฌ ๊ฒŒ์ž„ ํŠœํ† ๋ฆฌ์–ผ - The Rust Programming Language

์ด ๋ฌธ์„œ๋Š” 2ํŒ ๋ฒˆ์—ญ๋ณธ์ž…๋‹ˆ๋‹ค. ์ตœ์‹  2021 ์—๋””์…˜ ๋ฌธ์„œ๋Š” https://doc.rust-kr.org ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์Šต ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋Ÿฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค. ์ด๋ฒˆ ์žฅ์€ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ๋ช‡๋ช‡ ์ผ๋ฐ˜์ ์ธ

rinthel.github.io

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Programming Language > RUST' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Rustling] exercises/01_variables/variables1.rs ํ’€๊ธฐ  (1) 2024.10.11
Rustling ์‹œ์ž‘ํ•˜๊ธฐ  (3) 2024.10.11
RUST์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…  (0) 2024.10.10
Rust์˜ ๋ณ€์ˆ˜  (1) 2024.10.08
Hello, Cargo! (with VS Code)  (0) 2024.10.07
'Programming Language/RUST' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Rustling ์‹œ์ž‘ํ•˜๊ธฐ
  • RUST์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • Rust์˜ ๋ณ€์ˆ˜
  • Hello, Cargo! (with VS Code)
602zzang
602zzang
  • 602zzang
    yks_STUDY
    602zzang
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (77)
      • Programming Language (36)
        • C (15)
        • PYTHON (9)
        • RUST (12)
      • Reverse Engineering (3)
      • OS (17)
        • LINUX (17)
      • ๋ณด์•ˆ ์ด์Šˆ (6)
      • Digital Forensics (1)
      • CTF (8)
      • ๊ธฐํƒ€ (6)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ณด์•ˆ๋™ํ–ฅ
    ์†Œ์ผ“ ํ†ต์‹ 
    c
    python
    umassctf2025
    bandit
    ๊ณต๊ธ‰๋ง
    P4C
    ๋ณด์•ˆ์ด์Šˆ
    ๋ฐฑ์ค€
    rustling
    ์ฝ”๋“œ์—…
    ๋“œ๋ฆผํ•ต
    ํŒŒ์ด์ฌ
    Rocky Linux
    TeamH4C
    picoCTF
    ๋นก๊ณตํŒŸ
    rust
    cyberdefenders
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
602zzang
Rust๋กœ ๋งŒ๋“œ๋Š” ์ˆซ์ž ์ถ”๋ฆฌ ๊ฒŒ์ž„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”