Rust 쉐도잉(Shadowing)에 대해서 알아보도록 하겠습니다. 쉐도잉(Shadowing)이란? 쉐도잉(Shadowing)은 동일한 이름의 변수를 새로운 값을 가진 새로운 변수로 다시 정의하는 것을 의미합니다. 새로운 변수가 이전 변수를 가리게 되어서 쉐도잉(Shadowing)이라고 합니다. 코드를 통해서 좀 더 알아볼까요? 쉐도잉(Shadowing) 예시 아래 코드를 보시면, let을 통해서 x를 선언하게 됩니다. x는 bool 타입으로 선언이 되었고, 이를 출력하면 x: true가 출력되게 됩니다. 그리고 다시 let을 통해서 x를 &str 타입으로 선언해 줍니다. 그러면 x: monkey가 출력되게 됩니다. 좀 더 설명을 해보자면, true 값을 가진 x는 monkey 값을 가진 x가 선언이 되..
Rust에서 포인터 타입은 크게 3가지로 나뉩니다. Rust에서 포인터 타입은 C/C++에서처럼 포인터가 null이 되거나 중복 해제 등과 같은 일이 발생하지 않습니다. 그렇기 때문에 사람이기 때문에 하는 실수를 사전에 방지할 수 있습니다. 단, unsafe 블록을 사용하는 순간 안전성은 개발자에게 넘어오게 됩니다. 물론 보통의 경우에는 unsafe를 사용하지 않겠지만 말입니다. 레퍼런스(&) 레퍼런스는 C/C++에서의 포인터와 유사합니다. 그렇기 때문에 &var를 쓰고 *var를 함으로써 var이 가지고 있는 값을 접근할 수 있습니다. 이러한 레퍼런스는 2가지로 나뉩니다. 불변 참조(&T)와 가변 참조(&mut T)입니다. 불변 참조는 데이터를 읽을 수는 있지만 수정할 수 없고, 가변 참조는 데이터를 ..
슬라이스는 벡터(Vector), 문자열(String), 배열(Array) 등과 같은 시퀀스 데이터를 다루는 도구로써, 데이터의 일부분을 안전하게 조작하고 공유할 수 있게 해 줍니다. 슬라이스는 무엇인지 알아보도록 합시다. 추가로 슬라이스 레퍼런스에 대해서도 알아보도록 합시다. 슬라이스 슬라이스는 데이터의 일부분에 대한 참조로써, 데이터의 복사본을 생성하지 않고 해당 데이터를 조작할 수 있게 합니다. 슬라이스는 시작 인덱스와 끝 인덱스를 사용하여 데이터의 일부분을 지정하며, 다음과 같은 형식으로 선언됩니다. [T] 슬라이스 생성과 사용 슬라이스 생성과 사용 방법은 아래 코드를 참고하시길 바랍니다. 보시다시피 벡터, 문자열, 배열 등을 선언한 뒤, 시작 인덱스와 끝 인덱스를 지정해서 슬라이스를 만듭니다. 그..
Rust 배열에 대해서 배웠었는데, 기억하시나요? 혹시 기억이 안 나신다면 아래 링크에서 보고 오시는 것을 추천드립니다. [Rust] 배열(array) Rust에서 배열은 C/C++에서 보았던 배열과 비슷합니다. 하지만 매번 그랬듯이 다른 점도 있기 때문에 잘 비교하면서 알아보도록 합시다. 배열(array) Rust에서 배열은 고정된 크기의 요소를 저장하는 77monkey.tistory.com 배열에 이어서 벡터에 대해서도 알아보도록 합시다. 벡터(Vector) Rust에서 벡터는 std::vec::Vec 모듈을 통해서 사용할 수 있는 동적 배열입니다. 그렇기 때문에 메모리를 할당하고 해제할 수 있으며 요소를 추가하거나 제거할 수 있습니다. 이를 통해서 크기를 동적으로 조절할 수 있습니다. 배열과는 다르..
Rust에서 배열은 C/C++에서 보았던 배열과 비슷합니다. 하지만 매번 그랬듯이 다른 점도 있기 때문에 잘 비교하면서 알아보도록 합시다. 배열(array) Rust에서 배열은 고정된 크기의 요소를 저장하는 데이터 구조입니다. 배열은 한 번 생성되면 크기를 변경할 수 없으며, 요소의 데이터 타입은 동일해야 합니다. 요소의 데이터 타입을 다르게 하고 싶다면 [Rust] 튜플(tuple)을 사용하시면 됩니다. Rust의 배열은 C/C++과 동일하게 스택에 저장되며 고정된 크기로 선언됩니다. 고정된 크기가 아니라면 벡터를 사용하셔야 합니다. 벡터는 추후에 포스팅하도록 하겠습니다. 배열 선언 배열을 선언할 때에는 항상 초기화를 해줘야 합니다. Rust에서는 초기화되지 않은 배열을 사용할 수 없기 때문입니다. 코..
Rust에서 bool 타입은 아마 가장 간단한 타입이지 않을까 싶습니다. C/C++에서 접했던 bool 타입과도 유사하기 때문입니다. 하지만 조금 다른 점도 있기 때문에 Rust에서의 bool 타입을 알아보도록 하겠습니다. bool 타입 bool 타입은 true 또는 false 값만 가질 수 있습니다. 이러한 true와 false 값은 조건문 또는 제어문에서 중요합니다. 그 이유는 조건문 또는 제어문의 조건식의 결과는 bool 타입인 true 또는 false 값을 가져야 하기 때문입니다. bool 타입은 또한 true 또는 false 값을 가져서 1bit로 충분히 표현이 가능하지만, Rust에서는 1 Byte를 할당합니다. bool 선언 bool 선언과 할당은 [Rust] 변수 선언에서 했던 것과 유사하..