개발/러스트 (Rust)27 Rust 기본, OBRM vs RAII Rust 기본 : 소유권 기반 리소스 관리 (OBRM : Ownership Based Resource Management) Rust는 리소스를 컴파일러가 관리한다. (OBRM : Ownership Based Resource Management.)C++은 라이브러리로 패턴을 제공한다. (RAII : Resource Acquisition Is Initialization.) Rust Box & Rc 스마트 포인터struct Car {}// Box : 힙 메모리의 ownership 전달 (=RAII 패턴 C++ unique_ptr)let car = Box::new(Car {});let car2 = car; // 레퍼런스 카운트가 증가하고 같은 힙 메모리를 가리킨다. (=RAII 패턴 C++ shared_.. 2024. 7. 6. Rust 기본, 주석 Comment. Rust 기본 : 주석 Comment. 러스트에서 사용하는 주석. // 이것은 라인 주석입니다. /* * 이것은 블록 주석입니다. */ 2024. 7. 6. Rust 기본, 제어 흐름 Control Flow. (if else, loop, while, for) Rust 기본 : 제어 흐름 Control Flow. (if else, loop, while, for) if ~ else if ~ elseif 문은 조건을 평가하여 true 일 때만 코드 블록을 실행합니다.else if 문을 사용하여 여러 조건을 체크할 수 있습니다.else 브랜치는 모든 조건 체크가 실패했을 때 실행하는 코드 블록을 지정합니다.let a = 5;if a > 5 { println!("a는 5 보다 크다.");} else if a > 3 { println!("a는 3 보다 크다.");} else { // a 5 { 1 } else { -1 }; loop조건 없이 무한 반복하는 루프를 생성합니다.break : 루프 탈출.continue : 다음 반복으로 넘어감.break valu.. 2024. 7. 6. Rust 기본, 함수 (Functions) Rust 기본 : 함수 (Functions)함수는 fn 키워드를 사용하여 정의합니다. 그 다음에는 함수 이름이 오고, 괄호 안에는 매개변수가 위치합니다.main 함수는 매개변수가 없습니다.그리고 마지막으로 중괄호가 오는데, 이는 함수 본문을 포함합니다.fn main() {} 함수의 이름 규칙은 스네이크 케이스를 따릅니다. (명명 규칙 (Naming Convention))즉, 모든 것이 소문자이며, 단어 사이에는 밑줄을 사용합니다.함수에서 값을 반환할 수 있습니다.그렇게 하기 위해 화살표 구문을 사용하여 반환 타입을 명시합니다.fn my_function(x: i32) -> i32 {}Rust에서 함수의 마지막 표현식은 반환 값으로 사용합니다.함수가 마지막 표현식을 반환 값으로 사용하려면 세미콜론을 생략해야.. 2024. 7. 6. Rust 기본, 상수와 정적 변수 (Constants, Statics) 비교. Rust 기본, 상수와 정적 변수 (Constants, Statics) 비교.상수(const)와 정적(static)은 어떤 범위(scope)에서도 사용할 수 있다.두 경우 모두 명시적으로 타입을 선언해야한다. const는 인라인 처리됩니다.이는 컴파일 타임에 상수를 사용하는 부분에 직접 값이 대체됩니다. static은 메모리에 존재하므로 주소를 가집니다. (프로그램과 같은 수명을 가집니다.)또한 프로그램의 모든 스레드에서 접근 가능하므로, static mut 사용할 경우 스레드 안전성을 확보하기 위해 unsafe 키워드 혹은 Mutex를 통해 값을 변경할 수 있습니다. CODEconst MAX_PLAYER: u8 = 10;static SNOWOODS_NAME: &str = "Rusty Snowoods".. 2024. 7. 6. Rust 기본, 데이타 타입 (Scalar, Compound, Unit) Rust 기본 : 데이타 타입 (Scalar, Compound, Unit) 스칼라 데이터 타입 (Scalar Data Types )단일 값을 나타내는 타입입니다.정수형(integers), 부동소수점 수(floats), 불리언(booleans), 그리고 문자(characters)가 스칼라 타입에 속합니다. 복합 데이터 타입 (Compound Data Types)여러 값을 그룹화하여 하나의 타입으로 나타내는 데이터 타입입니다.Rust에서는 주로 튜플(tuple)과 구조체(struct)를 사용하여 복합 데이터 타입을 구현합니다. 유닛 타입 (Unit Data Type)1. 값이 없음을 나타냅니다.유닛 타입은 실제로 어떤 데이터도 담지 않으며, 오직 한 가지 값만을 가질 수 있습니다. ex) let unit =.. 2024. 5. 27. 주요 RUST 학습 자료. 기초 (Basic) - 러스트 북 (유튜브 튜토리얼)https://www.youtube.com/watch?v=OX9HJsJUDxA&list=PLai5B987bZ9CoVR-QEIN9foz4QCJ0H2Y8 - 러스트 북 (The Rust Book 한글 번역본)https://doc.rust-kr.org/title-page.html The Rust Programming Language - The Rust Programming LanguageSteve Klabnik, Carol Nichols 지음. 기여해주신 러스트 커뮤니티 여러분과 한국어 번역에 참여해주신 분들께 감사드립니다. 이 텍스트 버전은 여러분이 (2023년 2월 9일에 출시된) 러스트 1.67.1 혹은 이후doc.rust-kr.org - 카고 북 .. 2024. 5. 23. codellama가 알려준 Rust 와 다른 언어 비교. Python vs RustPython은 웹 개발과 과학 계산에 적합한 인기 있는 고급 언어입니다. Rust는 안전성과 성능에 중점을 둔 시스템 프로그래밍 언어입니다. Python은 큰 표준 라이브러리와 웹 응용 프로그램 및 데이터 분석 도구를 구축하기 위한 강력한 생태계를 가지고 있습니다. Rust는 메모리 안전성을 보장하도록 설계되었으며, 개발자가 사용자 정의 코드로 언어를 확장할 수 있게 하는 강력한 매크로 시스템을 가지고 있습니다. JavaScript vs RustJavaScript는 클라이언트 측 웹 개발과 모바일 앱 개발에 적합한 널리 사용되는 동적 언어입니다. Rust는 안전성과 성능에 중점을 둔 시스템 프로그래밍 언어입니다. JavaScript는 웹 응용 프로그램과 모바일 앱을 구축하기 위한.. 2024. 5. 20. Rust 기본, Creation, Mutability, Shadowing, Scope 이해하기. Rust 기본 : Creation, Mutability, Shadowing, Scope. 생성(Creation)변수나 데이터 구조체를 새로 만드는 과정을 의미합니다.Rust에서는 let 키워드를 사용하여 새 변수를 생성할 수 있습니다. 가변성(Mutability)변수의 값을 변경할 수 있는 성질입니다.Rust에서는 기본적으로 변수가 불변(immutable)이며,mut 키워드를 사용하여 명시적으로 가변(mutable)으로 선언해야 합니다.섀도잉(Shadowing)같은 이름의 새로운 변수를 선언함으로써 이전 변수를 가리는 기법입니다.이는 Rust에서 let 키워드를 사용하여 동일한 이름의 변수를 재선언함으로써 수행할 수 있으며,새 변수는 이전 변수의 값을 "섀도"하게 됩니다.범위(Scope)변수나 함수와 같.. 2024. 5. 16. 이전 1 2 3 다음