rust 6

Rust - 7. 구조체, 열거형, 패턴 매칭

c,c++의 구조체(struct)랑 열거형(enum)과 많이 다른가? 튜플과 또 다른점은? 1. 구조체 Struct 정의 및 인스턴트화 서로 연관된 필드 및 데이터를 묶는 방법 struct struct_name { value_name: value_type, ..., } c/c++이랑 큰 차이없다. 구조체 선언 하고 구조체 내부 속성에 타입을 설정하면 된다. 값은 "."을 통해서 사용할수 있다. 가변적으로 사용하려면 let mut st: struct_name; 이런식으로 선언하면 된다. 구조체 내 특정 값만 가변적으로 사용할순 없다. 필드 초기화 축약법 fn build_user(email: String, username: String) -> User { User { active: true, username..

STUDY/Rust 2024.02.17

Rust - 6. 소유권

러스트의 가장 독특한 특성이라고한다. 가비지 콜렉션을 사용하지 않기 위한 방법이라고 대충 본거같은데 한번 열심히 읽어봐야지. (사실 여러번 읽어봤는데 이해안되는 중이라 더 읽어보는중) 0. Garbage Collection 메모리 관리 방법 중 하나. 프로그래머가 동적으로 할당한 메모리 영역 중 더 이상 쓰이지 않는 영역을 자동으로 찾아내어 해제하는 기능이다. 반복적으로 찾기 때문에 오버헤드가 있다. GC는 python, java, javascript 등에서 쓰인다. (c, c++은 동적으로 메모리를 할당하고 사용하지 않는 경우 직접(수동으로) 해제해야한다.) 종류로는 Tracing GC, Reference Counting based GC 가 있다. 1. 소유권 GC를 사용하지 않고 메모리를 관리하는..

STUDY/Rust 2024.02.16

Rust - 4. 문법/변수, 데이터 타입

나처럼 찍먹하는 사람들한테는 가장 재미있는 부분인 문법이다. 외국어 배울때 알파벳만 배우는 거랑 비슷하다. 1. 변수와 가변성 러스트의 변수는 기본적으로 immutable(불변)하다. 기본적으로 값이 어디서 어떻게 바뀔지 추적할 필요가 없다고 한다. mut이라는 키워드를 추가하면 mutable(가변) 변수를 생성할수 있다. 이 변수는 코드 내에서 값이 바뀔 것이라고 명시적으로 전달한다. "3. 추리게임 만들기"에서 mut 이라는 키워드를 사용했다. 상수(const)와는 다르다. 상수 상수는 항상 불변이므로 mut와 함께 사용할수 없다. 상수는 전역스코프를 포함해서 어떤 스코프에서도 선언 가능하다. 상수는 반드시 상수 표현식으로만 설정될수 있다.런타임으로 계산하는,변수나 함수 반환값이 들어간 식으로 표현하..

STUDY/Rust 2024.02.14

Rust - 3. 추리게임 만들기 (with python)

Rust로 추리게임(guessing game)을 만들면서 대략적인 문법을 공부해보고 그나마 잘하는 파이썬과 비교하면서 뭐가 다른지 비교해본다. 빠르게 프로젝트를 생성하고 전체 코드를 비교해보자 // Cargo.toml [dependencies] rand = "0.8.5" // main.rs use std::{cmp::Ordering, io}; use rand::Rng; fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1..=100); loop { println!("Please input your guess."); let mut guess = String::new(); io::stdin() ..

STUDY/Rust 2024.02.14

Rust - 2. 프로젝트 생성

설치까지 다했으니 이젠 hello world를 쳐볼 차례이다. 1. Hello, Rust World! 새로운 디렉토리를 만들고 러스트 프로젝트를 몰아넣자. 적당히 관리하기 편하게 $ mkdir rust $ cd rust $ pwd -- output -- /Volumes/T7/Study/rust 외장 하드에 폴더를 생성해서 /Volumes/ 라는 위치에 있다. 여기에 또 새로운 폴더를 만들고 main.rs 파일까지 만들어보자 $ mkdir hello-rust-world $ cd hello-rust-world $ vi main.rs main.rs는 아래와 같이 작성한다. fn main() { println!("Hello, Rust World!"); } 작성 후 아래 커맨드를 입력하면 프로그램 하나가 만들어..

STUDY/Rust 2024.02.13

Rust - 1. 설치

m1 맥미니를 사용하고 있어서 mac os 기준으로 설명(....하려 했는데 왜 설치 되어있는건지?) 아래 홈페이지에 들어가서 getting started 를 쭉 따라가면서 stable (안정) 버전으로 설치한다. https://www.rust-lang.org/ Rust Programming Language A language empowering everyone to build reliable and efficient software. www.rust-lang.org 0. 설치 유무 확인 혹시 설치가 되어있을수 있으니 터미널을 열고 아래 명령어를 입력해서 확인해보자. rustc --version -- output -- command not found: rustc or rustc 1.72.0 (5680fa..

STUDY/Rust 2024.02.13