Post

1. Rust 타입 변환의 엄격 관리

Rust는 불변성(immutability)과 타입 변환에 엄격한 규칙을 가지고 있습니다. 코드에서 변수가 불변한(immutable) 상태로 선언되었더라도 해당 변수의 타입이 변경되는 것을 허용하지 않습니다. 이러한 특성은 Rust의 안전성과 예측 가능성을 보장하기 위한 것입니다.

예를 들어, 다음과 같은 코드가 있다고 가정해봅시다.

1
2
let a: String = "abc";

여기서 a는 불변한(immutable) String 변수로 선언되었고, "abc"는 문자열 리터럴로, 이는 불변한(immutable) &str 타입입니다. 이 코드는 컴파일되지 않습니다. Rust는 서로 다른 타입 간의 암시적 변환을 허용하지 않기 때문입니다.

Rust에서는 변수의 타입이 다른 값으로 변경되는 것을 컴파일러가 감지하여 거부합니다. 이는 Rust가 코드의 안전성을 보장하기 위한 중요한 특성 중 하나입니다. 불변 변수로 선언된 경우에도 해당 변수의 타입을 명시적으로 변경해주어야 합니다.

따라서 올바른 코드는 다음과 같이 작성됩니다.

1
2
let a: String = "abc".to_string();

또는 다음과 같이 문자열 리터럴 대신 String 타입의 변수로 직접 초기화하는 것도 가능합니다.

1
2
let a: String = String::from("abc");

이렇게 함으로써 Rust는 코드의 안전성을 높이고 개발자가 의도하지 않은 동작을 방지합니다. 불변성과 타입 변환의 엄격한 관리는 Rust가 안정적이고 신뢰할 수 있는 시스템 소프트웨어를 개발하는 데 도움을 줍니다.

This post is licensed under CC BY 4.0 by the author.