목록전체 글 (88)
소소한 개발 공부
해시맵 HashMap 은 K 타입의 키, V 타입의 값을 해시 함수를 사용해 매핑한 것을 저장 임의의 타입으로 된 키를 이용해 데이터를 찾고 싶을 때 유용 ex) 각 팀의 점수를 해시맵에 저장했을 때 팀 이름이 키, 점수가 값 -> 팀 이름으로 값 찾기 가능 1. 해시맵 생성 new 로 생성, insert로 요소 추가 pub fn insert(&mut self, k: K, v: V) -> Option : K에 해당하는 V가 없다면 None 반환, 있다면 V 반환 use std::collections::HashMap; let mut scores = HashMap::new(); scores.insert(String::from("Blue"), 10); // 키: Blue, 값: 10 scores.insert(..
use 키워드로 경로 가져오기 1. use를 사용함으로써 함수를 가져오는 경로를 단축시킬 수 있다. mod front_of_house { pub mod hosting { pub fn add_to_waitlist() {} } } use crate::front_of_house::hosting; pub fn eat_at_restaurant() { hosting::add_to_waitlist(); } - 파일 시스템의 심볼릭 링크(symbolic link)를 생성하는 것과 유사 (* 심볼릭 링크: 링크를 연결해 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크) - use로 가져온 경우도 privacy 규칙이 적용됨 -> 다른 스코프에서는 쓸 수 없음 1.1) 사용된 스코프 내에서만 단축 경로가 적용 아래..
1. 데이터 타입 러스트는 타입이 고정된 강타입 언어로, 데이터 타입은 스칼라, 컴파운드(복합타입) 로 나뉜다. * 강타입(strongly-type): 컴파일 타임에 타입 체크를 하며, 묵시적 형변환이 금지되는 언어 1) 스칼라 하나의 값으로 표현되는 타입 - 정수형 / 부동 소수점 숫자형 / boolean / 문자(char) 가 있음 정수형 정수 타입 bit size signed unsigned 8-bit i8 u8 16-bit i16 u16 32-bit i32 (일반적으로 사용) u32 64-bit i64 u64 128-bit i128 u128 32-bit / 64-bit 아키텍처에 따라 다름 - 포인터 타입 isize usize 정수 리터럴 : - Decimal -> 100_000 가능 - Hex ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VKdBp/btsoCGcz5eA/FtDxnnvIiZi9uY712lCF1K/img.png)
Windows 에서 Rust 설치하기 1. https://www.rust-lang.org/en-US/install.html 에서 rustup 다운로드 업데이트 명령 프롬프트 창에서 $ rustup update 삭제 $ rustup self uninstall 버전 확인 $ rustc --version 2. 에디터 설정하기 (vscode 를 사용하는 경우라고 가정) 1) rust-analyzer 설치 2) 디버깅 툴 설치 - C/C++ - microsoft - CodeLLDB 3. 프로젝트 생성 $ cargo new hello_cargo --bin $ cd hello_cargo --bin 옵션은 바이너리 파일을 생성하는 옵션
- 실습 프로젝트로 러스트를 익혀 보자! let, match, 메서드, 연관 함수(associated functions), 외부 크레이트(externals crates) 등의 활용을 배워보자. Q. 1~100 사이의 임의의 정수를 생성한다. 다음으로 플레이어가 프로그램에 추리한 정수를 입력한다. 프로그램은 입력받은 추리값이 정답보다 높거나 낮은지 알려준다. 추리 값이 정답이라면 축하 메시지를 보여주고 종료된다. (=> 업앤다운) 1. 프로젝트 생성 $ cargo new guessing_game --bin $ cd guessing_game - cargo new : 프로젝트 이름 guessing_game 을 인자로 받는 명령어로 인자를 이름으로한 프로젝트 디렉터리를 생성한다. --bin 은 바이너리용 프로젝..
모든 프로그래밍 언어 대부분이 가진 개념을 러스트가 어떻게 다루는지 알아본다. - 변수, 기본 타입들, 함수, 주석, 제어문 등 변수와 가변성 기본 변수는 불변성 즉, 변하지 않는다. => 안전성과 손쉬운 동시성을 가질 수 있음 변수가 불변인 경우, 값이 이름에 bind 되면 해당 값을 변경할 수 없다. 아래 처럼 variables 디렉터리를 생성해 확인해보자. cargo new --bin variables src/main.rs fn main() { let x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); } // error[E0384]: cannot assign twice to immutabl..