Rust

[Rust] Rust의 let/mut과 Map, JS의 const와 Map

Nhahan 2024. 9. 18. 16:52

JS에서는 Map을 const로 선언하고, 그 안에 데이터를 추가하거나 삭제할 수 있다.

const map = new Map();
map.set("apples", 10);
map.set("bananas", 5);
console.log(map); // Map(2) {"apples" => 10, "bananas" => 5}

사실 이건 누구나 다 아는 것이다.

const는 참조 불변을 뜻하기 때문이다.

 

 

그런데 Rust에서는 let(Rust의 let == JS의 const)으로 Map을 선언하고 데이터를 추가/삭제할 수 없다.

use std::collections::HashMap;

fn main() {
    let stock = HashMap::new();
    stock.insert("apples", 10); // 안됨!
}

왜냐하면 Rust의 let은 참조 불변이 아닌, 단순 '불변'이기 때문이다. 따라서 mut을 추가로 선언하여 가변성을 부여해주어야한다.

 

 

따라서 아래와 같이 코드를 작성하면 insert가 가능해진다.

use std::collections::HashMap;

fn main() {
    let mut stock = HashMap::new();
    stock.insert("apples", 10);
    stock.insert("bananas", 5);
    println!("{:?}", stock); // {"apples": 10, "bananas": 5}
}

 

 

 

 

사실 별 거 아님. 😅