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}
}
사실 별 거 아님. 😅