250x250
Notice
Recent Posts
Recent Comments
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags more
Archives
Today
Total
관리 메뉴

자기개발하는 QA

Rust 02 본문

지식/Rust

Rust 02

뚜뚜히 2022. 11. 15. 08:19

실행 프로그램 만들기

$ rustc <file>
// file OS에 맞는 실행가능한 파일

카고로 컴파일

$ cargo run
// -v : verbose 상세 출력 플래그
$ cargo build
// -release : optimized 릴리즈 빌드

변수정의 함수 호출

fn main() {            
  let a = 10;          // ide에서 타입 추정한다. 타입 추정하려면 선언 하위에서 해당 변수를 
											 // 사용해야 가능
  let b: i32 = 20;     
  let c = 30i32;      
  let d = 30_i32;     
  let e = add(add(a, b), add(c, d)); // 각 함수로 컴파일되어 처리되므로 선언이 하단에 되어 가능

  println!("( a + b ) + ( c + d ) = {}", e);
}

fn add(i: i32, j: i32) -> i32 {    
  i + j                            // 리턴 필요 없다
}

숫자

fn main() {
  let twenty = 20;                       //<1>
  let twenty_one: i32 = 21;              //<2>
  let twenty_two = 22i32;                //<3>

  let addition = twenty + twenty_one + twenty_two;
  println!("{} + {} + {} = {}", twenty, twenty_one, twenty_two, addition);

  let one_million: i64 = 1_000_000;      //<4>
  println!("{}", one_million.pow(2));    // 숫자가 메소드를 가지고 있다.

  let forty_twos = [                     //<6>
    42.0,                                //<7>
    42f32,                               //<8>
    42.0_f32,                            //<9>
  ];

  println!("{:02}", forty_twos[0]);      //<10>
}
fn main() {
  let three = 0b11;             //<1>
  let thirty = 0o36;            //<2>
  let three_hundred = 0x12C;    //<3>

  println!("base 10: {} {} {}", three, thirty, three_hundred);
  println!("base 2:  {:b} {:b} {:b}", three, thirty, three_hundred);
  println!("base 8:  {:o} {:o} {:o}", three, thirty, three_hundred);
  println!("base 16: {:x} {:x} {:x}", three, thirty, three_hundred);
}
// template는 이렇게 쓰는건 알겠다.
// 그럼 :b 같은걸 인자나 연산으로 사용할수 있을까?
  • TryInto 같은것으로 강제로 타입을 맞추어 쓸수 있다. 기준은 하위에 연산 비교등의 명령기준
  • 부동소수점 연산 비교는 정밀도 필요한 경우 EPSILON을 사용
$ cargo install cargo-edit
// 의존성을 수동으로 추가 하지 않아도 관리해주는 도구

반복문

  • while, for, loop, match
fn main() {
    let mut ar = [1, 1, 2, 5, 14, 42, 132, 424];

    for item in &mut ar {
        *item = 10;
        println!("{}", item)
    }
}
// 반복문(array for)안에서 item 값을 변경하는 샘플 코드

참조

fn main() {
    let a = 42;
		let r = &a;
		let b = a + *r;
    
		println!("a + a = {}", b);
}
// 참조 역참조
728x90

'지식 > Rust' 카테고리의 다른 글

Rust 4  (0) 2022.11.23
Rust 03  (0) 2022.11.15
Rust 01  (0) 2022.11.01