본문 바로가기

rust16

[RUST] TRPL : Chapter15 - Smart Pointer Chapter 15 - Smart Pointer포인터 : 메모리에 주소를 포함하는 변수에 대한 일반적인 개념. (참조, 가리킴)스마트 포인터 : 포인터처럼 작동하지만 추가 메타데이터와 기능도 있는 데이터 구조.자신이 가리키는 데이터를 소유한다.특성:Deref : 스마트 포인터 구조체의 인스턴스가 참조처럼 동작하여, 참조 또는 스마트 포인터로 작업하도록 코드 작성 가능Drop : 스마트 포인터의 인스턴스가 범위를 벗어날 때 실행되는 코드를 사용자 지정할 수 있다.일반적으로 구조체를 사용하여 구현BoxBox :스택에 남는 것은 힙 데이터에 대한 포인터이다.사용 :컴파일 시점에 크기를 알 수 없는 유형이 있고 정확한 크기가 필요한 컨텍스트에서 해당 유형의 값을 사용대량의 데이터가 있고 소유권을 이전하려고 하지.. 2024. 12. 6.
[RUST] TRPL : Chapter 13 - Iterators & Closures Chapter 13 - Iterators & ClosuresClosures : 클로저변수에 저장하거나 다른 함수에 인수로 전달할 수 있는 익명 함수. 한 곳에서 클로저를 만든 다음 다른 곳에서 클로저를 호출하여 다른 컨텍스트에서 평가할 수 있다.람다와 비슷함.장점값을 캡처하면 추가적인 메모리 복사가 발생하지만, 참조로 캡처하면 메모리 사용이 최소화됨.클로저 유형 추론 및 주석함수와 클로저 사이에는 더 많은 차이점이 있다.클로저 : 일반적으로 함수처럼 매개변수나 반환 값의 유형에 주석을 달 필요가 없다.노출된 인터페이스에서 사용되지 않는다. → 유형 추론한번 호출되어서 유형이 추론된 경우, 다른 유형으로 호출할 수 없다.물론, 명확성을 높이기 위해 유형 주석을 추가할 수 있다. ex → |num: u32|.. 2024. 12. 2.
[RUST] TRPL : Chapter 12 - I/O Project https://github.com/archun39/Rust/tree/main/chapter12/minigrep [Rust/chapter12/minigrep at main · archun39/RustContribute to archun39/Rust development by creating an account on GitHub.github.com](https://github.com/archun39/Rust/tree/main/chapter12/minigrep)Chapter 12 - I/O project.collect() : 반복자가 생성한 모든 값을 포함하는 벡터로 변환. → 주석 필수프로젝트 이름은 벡터의 첫 번째값, args[0]을 차지한다. 따라서 [1]부터 사용하자.use std::env;fn mai.. 2024. 12. 1.
[RUST] TRPL : Chapter 11 - Test Chapter 11 - TDD테스트는 코드가 예상대로 기능하는지 확인하는 Rust 함수.필요한 데이터나 상태를 설정테스트하려는 코드를 실행결과가 기대한 대로인지 확인#[test]함수를 테스트 함수로 변경함.assert_eq! 메크로를 사용하여 기대 결과를 저장함.cargo test 를 통해서 테스트를 컴파일하고 실행매크로 결과 확인하기assert! 를 활용하여 테스트의 결과를 확인할 수 있다. (bool)true → okfalse → panic!#[derive(Debug)]struct Rectangle { width: u32, height: u32,}impl Rectangle { fn can_hold(&self, other: &Rectangle) -> bool { self... 2024. 12. 1.