티스토리 뷰

프로그래밍

rust-0

수박수박좋다 2024. 9. 8. 12:45
반응형

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
농담곰의 고군분투 개발기