본문 바로가기

Rust61

[Rust] Rust Programming 9일차 - 구조체의 Tuple 인덱스 [예제_1] fn main() { let rect1 = (50, 30); println!( "The area of the rectangle is {} square pixels.", area(rect1) ); } fn area(dimensions: (u32, u32)) -> u32 { dimensions.0 * dimensions.1 } [예제_2] struct Rectangle { length: u32, width:u32, } fn main() { let rect1 = Rectangle { length: 50, width: 30 }; println!( "The area of the rectangle is {} square pixels.", area(&rect1) ); } f.. 2022. 12. 16.
[Rust] Rust Programming 8일차 - Slice : [index_start..index_end] ==> 메모리 안정성 및 컴파일 타임 보장 [구조체] ==> 구조체를 쓰려면 Instance 생성 필요 - 필드 초기화 축약법(Field Init Shorthand) ==> 변수명과 구조체 필드명이 같다면 필드명만 씀. - Struct Update Syntax(구조체 갱신법) - 구조체 내 타입이 같아도 각 구조체는 독림적. 2022. 12. 15.
[Rust] Rust Programming 7일차 - Reference(참조자) ==> & (엠퍼센트) : 변수 값은 참조하지만 소유권은 안 가져오는 Reference 생성\ - Borrowing(빌림) ==> 함수의 Parameter로 참조자를 생성하는 것. ==> &함수 또한 소유권이 없으므로, 소유권을 되돌려 주기 위해 Value를 다시 Return할 필요X - 수 기본값이 불변인 것처럼, 참조한 값도 기본이 불변 - 가변 참조자인 &mut 를 통해 참조 값을 변경 가능 - Reference를 통하여 Compile Time에 Data Race 방지. * Data Race 발생 조건 1. 2개 이상의 Pointer가 동시에 같은 Data에 접근 2. 그 중 적어도 하나의 Pointer가 Data를 씀 3. Data 접근을 위해 동기화하는 Mechan.. 2022. 12. 14.
[Rust] Rust Programming 6일차 - 소유권 개념 습득 ==> [소유권 규칙] 1. Rust의 각 Value는 해당 Value의 Owner라 불리는 변수를 가짐 2. 한번에 딱 하나의 Owner만 존재 3. Owner가 Scope 밖으로 벗어나면 Value는 버려짐(Dropped). - Drop을 통한 Memory 관리는 정말 대단한 것이었다! - Drop, 반환, 이동! 2022. 12. 13.