컨트리뷰션아카데미의그림자 - Rust 기초

기초 Rust

mut이라는 키워드만 알고 있는 수준인 러스트의 문법을 배워보자. 아래 사이트가 짱인듯. 아래 사이트를 보며 보고 배운 내용을 정리해본다. https://hanbum.gitbooks.io/rustbyexample

함수

함수는 c스타일로 아래와 같은 형태이며 시작점으로 main이라는 이름의 함수를 먼저 실행한다.

fn main() {
}

변수

let으로 선언하며 기본적으로 값을 바꿀 수 없다.

let a=1;

값을 바꾸고 싶으면 mut을 쓰자

let immutableVariable = 1;
immutableVariable = 2; //<- error!
let mut mutableVariable = 3;//
mutableVariable = 4; //<- works!
mutableVariable = true; //<- error! 정수형이므로 타입 변경 불가
let numberWithUnderLine = 1_000; //1000과 같음 표현 가능

코멘트

라인코멘트와

//

블록코멘트가 있는데 블록코멘트는 중첩이 가능하니 연만큼 닫자.

/**/ // ok
/* /* */ */ // ok
/* /* */ // not ok

html로 자동 생성되는 코멘트도 있다.

/// 문서화 주석 - 라인
//! 문서화 주석 - 블록 !//

출력 매크로

라인 출력이 함수가 아니고 매크로다. 그래서 println()이 아니고 println!()임

println!("Hello, Rustaceans!");

c처럼 전처리기에서 처리하는 문법인 것일까? 나중에 추가. 공부가 필요하다.

Formatted String 매크로[2]

format! 매크로로 포멧 스트링을 다룰 수 있다. C#의 문법과 비슷한듯.

format!("Hello"); // => "Hello"
format!("Hello, {}!", "world"); // => "Hello, world!"
format!("The number is {}", 1); // => "The number is 1"
format!("{:?}", (3, 4)); // => "(3, 4)"
format!("{value}", value=4); // => "4"
format!("{} {}", 1, 2); // => "1 2"
format!("{:04}", 42); // => "0042" 4자리 중 빈 칸은 0채움
format!("{:.3}", 123.4567); // 123.457 소숫점 3자리까지 표시. 아래는 반올림.
format!("{:#?}", (100, 200)); // => "(
// 100,
// 200,
// )"
// #?는 디버그 용으로 잘 잘라서 보여줌

Tuple

값이 여러개 들어가는 집합체.

let mytuple = (1i8, 1u8, (2u16, 2i16)) // 다른 타입 넣기 가능, 튜플안에 튜플 넣기 가능
mytuple.0 // = 1i8 접근은 .으로 가능
mytuple.1 // = 1u8

하나짜리 튜플 생성 가능

(1u8,) // 숫자하나짜리 엘레멘트를 가진 튜플
(1u8) // 1u8 숫자

Array

[]로 선언하고 튜플과 다르게 같은 형이다

let list : [iu8; 5] = [1, 2, 3, 4, 5]; // [type; size]

Slide

크기가 없는 배열. &[]로 표현한다.

참조

  1. https://hanbum.gitbooks.io/rustbyexample/content/hello.html
  2. https://doc.rust-lang.org/std/fmt/