전체 글(120)
-
Rust Dangling Pointer
개요 Rust에서는 Dangling Pointer가 발생하는 것을 컴파일러 단계에서 막을 수 있습니다. Rust에서 어떻게 Dangling Pointer를 막는지 알아봅니다. Dangling Pointer란? 해제 된 메모리 영역을 가리키고 있는 포인터를 Dangling Pointer라고 합니다. 아래 같은 코드가 있습니다. #include using namespace std; int main() { int a = 5; int *b = &a; int *c = &a; cout
2023.02.25 -
Rust의 배열
개요 Rust에서 배열을 선언하는 법과 사용하는 방법에 대해 알아봅니다. 배열 배열은 적어도 러스트에서는 동일한 항목이 빽빽하게 차 있는 컬렉션이다. 연속 메모리 위치에 저장 된 동일한 형식의 데이터 값 모음이다. 배열 내의 항목을 바꿀 수는 있지만 그 크기는 변경할 수 없다. 배열을 생성하는 방법은 두 가지가 있다. 대괄호 안에 쉼표로 구분된 목록(ex: [1,2,3])이나 세미콜론으로 구분 된 두 값을 입력하는 반복 표현식(ex: [0; 100])이 있다. [1,2,3] : 배열 크기 3에 1,2,3 값이 들어 있다. [0; 100] : 배열 크기 10에 0으로 초기화 되어 있다. fn main(){ let one = [1,2,3]; let two: [u8; 3] = [1,2,3]; let blank..
2023.01.09 -
Rust의 제네릭(Generic)
개요 여러 언어에서 제네릭(generic)이란 데이터의 타입을 사용합니다. 데이터의 타입을 일반화한다(generalize)라는 것을 의미하며, 반복적인 코드의 작성을 줄여줍니다. Rust에서 제네릭을 어떻게 사용하는지 알아봅니다. 제네렉(Generic) 제네렉은 반복적인 코드를 작성 할 필요성을 줄이고 대신 이 작업을 컴파일러에 위임하는 동시에 코드를 보다 유연하게 만드는 방법입니다. 제네릭을 사용하면 각 데이터 유형에 대해 동일한 코드를 다시 작성할 필요없이 여러 데이터 유형과 함께 사용할 수 있는 코드를 작성 할 수 있으므로 작업이 더 쉬워지고 오류가 덜 발생하는 코딩이 가능합니다. 제네릭 함수 제네릭을 함수에 활용하면 다양한 타입의 파라미터를 받아 작업 할 수 있습니다. fn print(x:T) -..
2023.01.09 -
Rust의 반복문
개요 Rust에서 사용 가능한 반복문에 대해 알아봅니다. for 반복문 rust에서 for 반복문은 컴파일러의 메서드 호출로 확장됩니다. 아래와 같이 for 반복문은 세가지 표현식이 있습니다. 형태 Detail 접근 for item in collection for item in IntoIterator::into_iter(collection) 소유권 for item in $collection for item in collection.iter() 읽기 전용 for item in &mut collection for item in collection.iter_mu() 읽고 쓰기 익명 반복문 블록 내에서 지역 변수를 사용하지 않는 다면 관습적으로 밑줄(_)를 사용합니다. for _ in 0..10 { //... ..
2023.01.08 -
Rust의 숫자
개요 Rust에서 숫자 타입을 생성하는 방법과 연산이 수행되는 방법에 대해 알아봅니다. 정수와 부동 소수점 수 Rust에서 다른 언어와 다른 점이 몇가지 있다. 1. Rust는 16bit 정수를 32bit로 자동 변환하지 않는다.(명시적으로 이루어 진다.) 2. Rust에서의 숫자는 메서드를 가질 수 있다. 반올림 할 때 round(32.2_f32)가 아닌 32.2_f32.round()로 사용한다. 3. 숫자를 표현 할 때 밑줄(underbar)를 통해 가독성을 높을 수 있다. ex) let x:i64 = 1_000_000 4. 애너테이션을 사용해서 수를 표현 할 수 있다. ex) let x = 33i32; => let x:i32 = 33 이진법, 팔진법, 십육진법의 정수 i8, i16, i32, i64..
2023.01.08 -
Rust 실행 파일 만들기
개요 컴파일러의 역할은 소스 코드를 기계 코드로 변환하고 해당 코드가 운영 체제와 CPU에서 실행 가능하도록 하는 많은 일을 관리 합니다. Rust의 경우 rustc가 컴파일러 입니다. Rust로 실행 파일을 만드는 방법은 두 가지가 있습니다. 첫째, 단일 파일을 rustc로 컴파일 하면 실행 파일을 만들거나, Cargo를 통해 프로젝트를 생성하고 컴파일하여 실행파일을 만드는 방법입니다. 단일 파일 컴파일 fn main() { println!("ok!") } Rust로 작성한 단일 파일을 컴파일 하기 위해서는 아래와 같은 절차를 따릅니다. 1. 소스코드를 파일에 저장한다. 파일이름은 ok.rs 파일의 확장자는 rs이다. 2. 소스 코드가 main() 함수를 포함하고 있어야 한다. 3. 터미널, cmd.e..
2023.01.08