컨트리뷰션아카데미의그림자 - 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
크기가 없는 배열. &[]로 표현한다.