티스토리 뷰
반응형
Rust
정적타입언어- 변수의 타입이 컴파일 시점에 정해져있어야함
스네이크케이스 사용
cargo
빌드 시스템, 패키지 매니저
carge new ${name}
로 디렉토리 생성toml
은 카고 설정에서 사용하는 포맷- 카고가 코드 컴파일할 때 필요한 설정 정보 등이 담겨져있음
cargo build
: 빌드carge run
: 컴파일 + 실행cargo check
: 컴파일 되는지 확인cargo build --release
릴리즈 빌드 생성, 컴파일 최적화를 진행하여 build로 생성한 결과물보다 코드가 더 빨리 동작함cargo doc --open
: dep에 존재하는 크레이트(외부 라이브러리) 문서를 브라우저에서 열어줌use
프렐루드라고 부르는 표준라이브러리에 정의된 아이템 집합을 가져오기 위한 키워드
문법
- 반복문:
loop { .../ }
- 조건문:
if 조건 {.../ } else{ } else if { }
- 가변성:
mut
선언된 변수가 가변임을 알려줌 - Shadowing: mut선언과 달리 같은 이름의 변수를 재 선언함
- mut는 변수의 타입을 변경할 수 없으나 Shadowing은 같은 이름의 다른 변수를 만드는 것이기에 가능함
데이터 타입
스칼라 타입 (4가지)
- 정수, 부동소수점 숫자, boolean, 문자
복합 타입
- 튜플: 여러 타입을 묶어 하나의 복합 타입으로 만듬, 고정된 길이를 가져 늘리거나 줄일 수 없음
let tup: (i32, f64, u8) = (500, 6.4, 1);
let (x, y, z) = tup;
let five_hun = tup.0;
으로 접근- 아무값 없는 튜플은
unit
이이라 함
배열
let a: [i32; 5] = [1, 2, 3, 4, 5];
- 타입, 갯수로 타입 선언 가능
let a = [3; 5];// [3, 3, 3, 3, 3]
- 값, 갯수로 초기화 가능
표현식
- 세미콜론이 붙으면 구문이되고 없으면 표현식이됨
let x = {
let y = 4;
y + 1;
} // x = 5
fn five ()->i32 {
5 // 5;면 리턴되지 않음
}
let x = five(); // 5
if
- if, else, else if로 구성됨
let number = 3;
if number {} // error
//자동변환되지 않음 bool이어야됨
- Let 구문에서 if
let condition = true;
let number = if condition { 5 } else { 6 };
//5, 6타입이 같아야함
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
} // 20
반복문
- 루프라벨
let mut count = 0;
'counting_up: loop { // 루프라벨이 붙음
let mut remaining = 10;
loop {
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up;//루프라벨이 붙은 루프문 break;
}
remaining -= 1;
}
count += 1;
}
- while
- for
for el in a
for number in (1..4).rev() {...}
(range)
반응형
'프로그래밍' 카테고리의 다른 글
책임연쇄패턴 [ 행동 ] (0) | 2024.07.28 |
---|---|
추상팩토리 패턴 [ 생성 ] (0) | 2024.07.28 |
프록시 패턴 (0) | 2024.07.19 |
브릿지 패턴 (0) | 2024.07.19 |
싱글톤 패턴 (0) | 2024.07.11 |
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
농담곰의 고군분투 개발기