본문 바로가기

전체 글293

[Rust] Testing 예제 (26일차) pub fn add(left: usize, right: usize) -> usize { left + right } #[cfg(test)] mod tests { #[test] fn exploration() { assert_eq!(2 + 2, 4); } } pub fn add(left: usize, right: usize) -> usize { left + right } #[cfg(test)] mod tests { #[test] fn exploration() { assert_eq!(2 + 2, 4); } #[test] fn another() { panic!("Make this test fail"); } } #[derive(Debug)] pub struct Rectangle { length: u32, width.. 2023. 1. 8.
[Rust] Lifetime 예제 (25일차) fn longest y.len() { x } else { y } } fn main() { let string1 = String::from("abcd"); let string2 = "xyz"; let result = longest(string1.as_str(), string2); println!("The longest string is {}", result); } https://rinthel.github.io/rust-lang-book-ko/ch10-03-lifetime-syntax.html 2023. 1. 7.
[Rust] Trait 예제 (24일차) use std::cmp::PartialOrd; fn largest(list: &[T]) -> T { let mut largest = list[0]; for &item in list.iter() { if item > largest { largest = item; } } largest } fn main() { let numbers = vec![34, 50, 25, 100, 65]; let result = largest(&numbers); println!("The largest number is {}", result); let chars = vec!['y', 'm', 'a', 'q']; let result = largest(&chars); println!("The largest char is {}", resu.. 2023. 1. 6.
[Rust] Generic : Data Type 예제 (23일차) fn largest(list: &[T]) -> T { let mut largest = list[0]; for item in list.iter() { if item > largest { largest = item; } } largest } fn main() { let numbers = vec![34, 50, 25, 100, 65]; let result = largest(&numbers); println!("The largest number is {}", result); let chars = vec!['y', 'm', 'a', 'q']; let result = largest(&chars); println!("The largest char is {}", result); } struct Point { x: T,.. 2023. 1. 5.
[Rust] Generic 예제 (22일차) // A concrete type 'A' struct A; // In defining the type 'Single', the first use of 'A' is not preceded by '' // Therefore, 'Single' is a concrete type, and 'A' is definded as above. struct Single(A); // ^ Here is 'Single's first use of the type 'A'. // Here, '' precedes the first use of 't', so 'SingleGen' is a generic type. // Because the type parameter 'T' is generic, it could be anything, in.. 2023. 1. 4.
[Rust] Enum 예제 (21일차) #[derive(Debug)] enum Gender{ Male, Female, } #[derive(Debug)] enum Info { // String 타입 Name(String), // u32 타입 Age(u32), // 구조체 Location{x : i32, y : i32}, // enum Gender(Gender) } fn main() { let name = Info::Name(String::from("Nach Folge")); let age = Info::Age(29); let location = Info::Location{ x : 132, y : 80 }; let gender = Info::Gender(Gender::Male); println!("Name : {:?}", name); printl.. 2023. 1. 2.
[Rust] Guess 예제 (20일차) fn main() { let secret_number = 5; let mut guess = String::new(); println!("Please enter your guess:"); std::io::stdin().read_line(&mut guess) .expect("Failed to read line"); let guess: u32 = match guess.trim().parse() { Ok(num) => num, Err(_) => { println!("Please enter a number!"); return; }, }; if guess == secret_number { println!("You guessed it!"); } else { println!("Sorry, try again."); } .. 2023. 1. 1.
[Rust] Error 처리 Result 예제 (19일차) use std::fs::File; fn main() { let f = File::open("hello.txt"); let f = match f { Ok(file) => file, Err(error) => { panic!("There was a problem opening the file: {:?}", error) }, }; } use std::fs::File; use std::io::ErrorKind; fn main() { let f = File::open("hello.txt"); let f = match f { Ok(file) => file, Err(ref error) if error.kind() == ErrorKind::NotFound => { match File::create("hello.txt").. 2023. 1. 1.