Programing

Rust에서 'let x = x'는 무엇을합니까?

lottogame 2020. 8. 16. 21:49
반응형

Rust에서 'let x = x'는 무엇을합니까?


이 코드 는 야생에서 보았습니다 .

fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;

뭐라고합니까 let fields = fields;라인은 무엇입니까? 왜 거기에 있습니까?


그것은 만드는 fields불변 다시합니다.

fields이전에 변경 가능 ( let mut fields = …;) 으로 정의되어 sort_by_key내부 정렬 과 함께 사용되며 대상이 변경 가능해야합니다. 저자는 추가 변경 가능성을 명시 적으로 방지하기 위해 여기에서 선택했습니다.

변경 가능한 바인딩을 변경 불가능한 바인딩 "다운 그레이드"하는 것은 Rust에서 매우 일반적입니다.

이를 수행하는 또 다른 일반적인 방법은 블록 표현식을 사용하는 것입니다.

let fields = {
    let mut fields = …;
    fields.sort_by_key(…);
    fields
};

이 명령문 let var = var;var변경 불가능 하게 만들고 현재 값에 바인딩됩니다. 이전 fields과 같이 선언되었습니다 mut.

참고 URL : https://stackoverflow.com/questions/54595345/what-does-let-xx-do-in-rust

반응형