전체 글(254)
-
[Rust/러스트] 해쉬맵(HashMap) 다루기
■ 해쉬맵 HashMap은 키(key) 와 값(value)가 쌍으로 하는 데이터 구조를 갖고 있으며, 키와 값은 각각 동일한 타입으로 설정해야 한다. HashMap은 키를 이용하여 값을 조회할 수 있습니다. ◆ 해쉬맵 생성 해쉬맵을 생성하는 방법은 두가지입니다. 첫번째, HashMap 구조체의 new 함수를 활용한 생성 fn main(){ use std::collections::HashMap; // HashMap 생성 let mut hash_ages : HashMap = HashMap::new(); // 데이터 삽입 hash_ages.insert(String::from("Hyunmin Han"), 29); println!("HashMap : {:?}", hash_ages); } ▶ 출력 결과 HashMa..
2022.02.21 -
[Rust/러스트] 스트링 다루기
■ 스트링 스트링은 바이트의 컬렉션 및 바이트들을 텍스트로 통역할 때 유용한 기능을 제공하는 몇몇 메소드로 구현되어 있으며, 문자열 데이터를 갖습니다. ◆ 스트링 생성 스트링을 생성하는 방법은 세가지입니다. 첫번째, String 구조체의 new 함수를 활용한 생성 두번째, String 구조체의 from 함수를 활용한 생성 세번째, Display 트레잇이 구현된 모든 타입에서 to_string 메소드를 이용한 생성 fn main(){ // 공백 문자열 생성 let s1 = String::new(); // 공백 문자열 생성 let s1 = String::from(""); // 공백 문자열 생성 let s1 = "".to_string(); } ◆ 스트링 갱신 스트링을 갱신하는 방법은 네가지 입니다. 첫번째, ..
2022.02.21 -
[Rust/러스트] 벡터 다루기
■ 벡터 벡터는 데이터량이 컴파일 타임에 결정되지 않아도 되며, 프로그램 실행 시 늘어나거나 줄어들 수 있기 때문에 힙에 저장됩니다. 또한 메모리 상에 서로 이웃하도록 모든 값을 단일 데이터 구조 안에 하나 이상의 값을 저장하도록 해줍니다. 벡터는 같은 타입의 값만을 저장할 수 있으며, 벡터는 스코프 밖으로 벗어날 시 해제됩니다. ◆ 벡터 생성 벡터를 생성하는 방법은 두 가지입니다. 첫번째, 제네릭을 통한 데이터 타입 설정과 Vec 구조체의 new 함수를 통한 벡터 생성 두번째, vec! 매크로를 통한 벡터 생성 fn main(){ // new 함수를 활용하여 벡터 생성 let v1 : Vec = Vec::new(); // vec! 매크로를 활용하여 벡터 생성 let v2 : Vec = vec![1,2,..
2022.02.21 -
[Rust/러스트] 패턴 매칭(match, if let) 정리
■ 패턴 매칭 패턴 매칭에는 match 연산자와 if let 문법이 있습니다. match 연산자는 다양한 조건을 처리할 때 주로 사용되며, if let 문법은 간결한 흐름을 통해 하나의 패턴만 매칭시키고 나머지는 무시하고 싶을 때 사용됩니다. ◆ match match는 리터럴 값, 변수명 등 다양한 패턴으로 구성될 수 있습니다. Java, Go 등에서 자주 사용되는 switch 문법과 유사한 기능을 제공합니다. match의 패턴은 조건이 될 수 있는 모든 항목을 정의해야 합니다. 만약 패턴 조건에서 무시해도 되는 항목에 경우 변경자(_)를 통해 일괄적으로 무시할 수 있습니다. 1) 반환값이 없는 match #[derive(Debug)] enum Gender{ Male, Female, } #[derive(..
2022.02.21 -
[Rust/러스트] 열거형(enum) 정리
■ 열거형 열거형은 하나의 타입이 가질 수 있는 값들을 다양하게 열거함으로써 타입을 정의할 수 있습니다. 열거형의 항목은 다양한 타입으로 설정할 수 있으며, 열거형은 구조체와 같이 메소드와 연관함수를 구현할 수 있습니다. ◆ 다양한 타입으로 설정 Info 열거형의 항목을 다양하게 String, u32, 구조체, 열거형으로 정의함으로써 열거형의 특징을 확인할 수 있습니다. #[derive(Debug)] enum Gender{ Male, Female, } #[derive(Debug)] enum Info{ // String 타입 Name(String), // u32 타입 Age(u32), // 구조체 Location{x : i32, y : i32}, // 열거형 Gender(Gender) } fn main()..
2022.02.20 -
[Rust/러스트] 구조체의 메소드, 연관함수
■ 구조체의 메소드 구조체의 메소드는 구조체의 impl 블록에서 정의해야 하며 메소드의 첫번째 파라미터는 self가 됩니다. 추가적으로 impl의 명은 구조체의 명과 동일해야 하며, 첫번째 파라미터 self는 메소드를 호출하는 인스턴스를 가르킵니다. struct Person{ name : String, age : u32, address : String, email : String, } // 구조체 구현 impl Person{ // 메소드 정의 fn show_person(&self) { println!("Name : {}", self.name); println!("Age : {}", self.age); println!("Address : {}", self.address); println!("Email : ..
2022.02.17