Rust, 쉽게 하자!

Rust 입문 56

[Rust] Enum

2. Enum enum은 관계 있는 데이터들을 묶고 이름도 정해주어서 데이터를 좀 더 일관성있고 효율적으로 다룰 수 있게 해줍니다. enum 이름{ 데이터1, 데이터2, 데이터3, ... } enum은 match와 함께 잘 사용 됩니다. 다음 예를 통해 알아 보겠습니다. #[derive(Debug)] // DAY에 Debug 트레이트 구현 enum DAY { // DAY enum 선언 Mon, Tue, Wen, Thu, Fri, Sat, Sun, } fn main() { let mut day = DAY::Fri; // DAY 타입 변수 day 생성 match &day { Mon => println!("{:#?}", day), Tue => println!("{:#?}", day), Wen => printl..

Rust 입문 2022.10.05

[Rust] Struct

1. Struct 구조체, Struct 는 필드 또는 멤버라고 불리는 데이터들을 묶어 놓은 데이터 집합입니다. 필드(멤버)는 각각 다른 타입을 가질 수 있습니다. 그리고 이름을 가집니다. 구조체를 하나 만들어 보겠습니다. struct People { // 1 구조체 선언 name: String, age: u32, job: String, } fn main() { // 2 구조체 인스턴스 생성 let mut man1 = People { name: String::from("Jane"), age: 12, job: String::from("student"), }; println!("{} is a {} old {}", man1.name, man1.age, man1.job); } // 출력 Jane is a 12 o..

Rust 입문 2022.10.05

[Rust] Closure

2. Closure closure는 익명함수입니다. 그래서 이름이 없습니다. 대신 다른 것은 함수와 비슷합니다. 단 파라미터를 선언하는 부분만 약간 다릅니다. (파라미터) 대신 |파라미터|를 사용합니다. let 클로저 이름 = |파라미터|{...} 클로저는 이름이 없다더니 클로저의 이름아라니? 이상합니다. 하지만 클로저 선언부에는 ‘fn’ 키워드도 없고, 클러저 이름도 없습니다. 다만 익명으로 선언된 후에 변수처럼 할당해 주는 것입니다. 당연히, 이렇게 변수에 할당하지 않고 익명 함수를 그대로 사용할 수 있습니다. /// 10을 더하는 함수 fn add10(n: i32) -> i32 { return n + 10; } /// 문자엻을 출력하는 함수 fn show_this(s: String) { printl..

Rust 입문 2022.10.05

[Rust] 함수

1. 함수 Rust의 함수 선언 키워드는 ‘fn’입니다. 기본 형식은 다음과 같습니다. fn 함수명(파라미터 : 파라미터 타입) -> 반환타입{ ... } “fn 함수명(파라미터 : 파라미터 타입) -> 반환타입” 부분을 함수의 시그니처라고 합니다. 그 뒤의 {…} 부분은 함수의 몸체 (body)라고 합니다. i32 타입의 정수를 파라미터로 받아서 10을 더해 반환하는 간단한 함수를 만들어 보겠습니다. 이름은 ‘add10’이라고 하겠습니다. fn main() { let mut x = add10(5); // 5를 파라미터 값으로 함수 호출 println!("{}", x); } // 함수 선언 fn add10(n:i32)->i32{ return n + 10; } // 출력 15 만약 반환값이 없다면 ‘->’..

Rust 입문 2022.10.05

[Rust] match

6. match match는 다른 언어의 switch문과 비슷합니다. 하지만 그 활용도나 중요성은 훨씬 큽니다. match 변수{ 변수1 => 실행1, 변수2 => 실행2, ... } 예를 보겠습니다. let mut var1 = 3; match var1{ 1 => println!("var = 하나"), 2 => println!("var = 둘"), 3 => println!("var = 셋"), 4 => println!("var = 넷"), _ => println!("var = 그외"), // default } // 출력 var = 셋 위 예에서 match 문 마지막 줄의 ‘_’은 다른 언어의 ‘default’와 같은 역할을 합니다. 즉 앞서 나온 선택지 외의 모든 선택지를 의미합니다. 당연히 가장 마지막..

Rust 입문 2022.10.02

[Rust] For

5. For Rust의 for문은 C 타입의 언어에 비해 약간 독특합니다. Python 스타일에 가깝습니다. for index in range{ ... } 예를 들어 보겠습니다. let arr1 = [1,2,3,4,5]; for i in arr1{ print!("{} ", i); } // 출력 1 2 3 4 5 위 예에서는 range로 array를 사용 했습니다. range에는 벡터도 사용할 수 있습니다. let vec1 = vec![1,2,3,4,5]; for i in vec1{ print!("{} ", i); } // 출력 1 2 3 4 5 range를 바로 작성해서 사용할 수도 있습니다. for i in 1..6{ print!("{} ", i); } // 출력 1 2 3 4 5 위 예에서 1..6을..

Rust 입문 2022.10.02

[Rust] If

1. If 다른 프로그래밍 언어의 if와 같은 역할을 합니다. 조건이 참인 코드 블록만 실행합니다. 사용법도 동일합니다. 간단히 살펴 보겠습니다. if 조건 { … } 예를 보겠습니다. let x = 10; if x > 5 { println!("OK"); } // 출력 OK 물론 if … else도 사용할 수 있습니다. let x = 1; if x > 5 { println!(">5"); } else { println!("5, {}", x); } else if x > 8{ println!(">8, {}", x); } else { println!("else, {}", x); } // 출력 else, 1

Rust 입문 2022.09.30
반응형