[RUST/COMMON] 크레이트 설치 : num-bigint
■ num-bigint 크레이트를 설치하는 방법을 보여준다. ▶ Cargo.toml
1 2 3 4 5 6 |
... [dependencies] num-bigint = "0.4" |
■ num-bigint 크레이트를 설치하는 방법을 보여준다. ▶ Cargo.toml
1 2 3 4 5 6 |
... [dependencies] num-bigint = "0.4" |
■ if 식을 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 |
let value = 5; let result = if value % 2 == 0 { "짝수" } else { "홀수" }; println!("{}", result); |
■ for문에서 = 기호를 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fn main() { let mut total_value = 0; for value in 1..=10 { total_value += value; } println!("{}", total_value); } |
■ 함수 인자에서 가변 참조를 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
fn set_value(value : &mut u32) { *value = 100; } fn main() { let mut value = 10; set_value(&mut value); println!("valur = {}", value); } |
■ for문에서 배열 요소를 반복하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
fn main() { let value_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let mut total_summary = 0; for value in value_array { total_summary += value; } println!("{}", total_summary); } |
■ 타입 추론을 사용해 배열을 만드는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 |
let mut value_array = [0; 10]; // 초기화 값, 배열 요소 수 value_array[0] = 10; println!("{}", value_array[0]); |
■ 소수(prime number) 여부를 구하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
fn is_prime_number(value: usize) -> bool { for i in 2..value { if value % i == 0 { return false } } return true } fn main() { let result = is_prime_number(7); println!("{}", result); } |
■ 소수(prime number) 100개를 출력하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
fn is_prime_number(value : usize) -> bool { for i in 2..value { if value % i == 0 { return false } } return true } fn set_prime_number_array(prime_number_array : &mut[usize; 100]) { let mut value = 2; let mut index = 0; while index < 100 { if is_prime_number(value) { prime_number_array[index] = value; index += 1; } value += 1; } } fn main() { let mut prime_number_array = [0; 100]; set_prime_number_array(&mut prime_number_array); println!("{:?}", prime_number_array); } |
■ 클로저를 사용해 시저 암호(Caesar cipher)를 만드는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
fn encrypt(text : &str, shift : i16) -> String { let a_code = 'A' as i16; let converter = |character| (((character + a_code + shift + 26) % 26 + a_code) as u8) as char; let is_alpha = |character| 'A' <= character && character <= 'Z'; text.chars() .map(|character| if is_alpha(character) { converter(character as i16) } else { character }) .collect() } fn main() { let encrypted = encrypt("I LOVE YOU.", 3); let decrypted = encrypt(&encrypted , -3); println!("{} => {}", encrypted, decrypted); } /* L ORYH UXVW. => I LOVE RUST. */ |
■ 클로저(Closure)를 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 |
let twice_x = |n| n * 2; println!("{}", twice_x(2)); println!("{}", twice_x(8)); /* 4 16 */ |
■ 시저 암호(Caesar cipher)를 만드는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
fn encrypt(text : &str, shift : i16) -> String { let a_code = 'A' as i16; let z_code = 'Z' as i16; let mut target = String::new(); for character in text.chars() { let mut code = character as i16; if a_code <= code && code <= z_code { code = (code - a_code + shift + 26) % 26 + a_code; } target.push((code as u8) as char); } return target; } fn main() { let encrypted = encrypt("I LOVE RUST.", 3); let decrypted = encrypt(&encrypted , -3); println!("{} => {}", encrypted, decrypted); } /* L ORYH UXVW. => I LOVE RUST. */ |
■ as 키워드를 사용해 타입을 변환하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 |
let a_code = 'A' as i16; let z_code = 'Z' as i16; println!("{}", a_code); // 65 println!("{}", z_code); // 90 |
■ BITS 키워드를 사용해 isize/usize 타입에 대한 비트 수를 구하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 |
println!("isize=i{}", isize::BITS); println!("usize=u{}", usize::BITS); /* isize=i64 usize=u64 */ |
■ MIN/MAX 키워드를 사용해 각 타입별 최소/최대값을 구하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
println!("--- 부호가 있는 정수 ---"); println!(" i8={}~{}", i8::MIN , i8::MAX ); println!("i16={}~{}", i16::MIN, i16::MAX); println!("i32={}~{}", i32::MIN, i32::MAX); println!("i64={}~{}", i64::MIN, i64::MAX); println!("--- 부호가 없는 정수 ---"); println!(" u8={}~{}", u8::MIN , u8::MAX ); println!("u16={}~{}", u16::MIN, u16::MAX); println!("u32={}~{}", u32::MIN, u32::MAX); println!("u64={}~{}", u64::MIN, u64::MAX); println!("--- OS 비트에 따라 달라지는 정수 --- "); println!("isize={}~{}", isize::MIN, isize::MAX); println!("usize={}~{}", usize::MIN, usize::MAX); /* --- 부호가 있는 정수 --- i8=-128~127 i16=-32768~32767 i32=-2147483648~2147483647 i64=-9223372036854775808~9223372036854775807 --- 부호가 없는 정수 --- u8=0~255 u16=0~65535 u32=0~4294967295 u64=0~18446744073709551615 --- OS 비트에 따라 달라지는 정수 --- isize=-9223372036854775808~9223372036854775807 usize=0~18446744073709551615 usize=u64 */ |
■ 피보나치 수열을 출력하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
let mut a = 1; let mut b = 1; println!("{}", a); println!("{}", b); for _ in 0..30 { println!("{}", a + b); let temparay_value = a; a = b; b = temparay_value + b; } /* 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 */ |
■ mut 키워드를 사용해 가변 변수를 정의하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 |
let mut a = 100; |
■ print! 매크로를 사용해 문자열을 출력하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
fn main() { for y in 1..10 { for x in 1..10 { if x < 9 { print!("{:3},", x * y); } else { println!("{:3}", x * y); } } } } /* 1, 2, 3, 4, 5, 6, 7, 8, 9 2, 4, 6, 8, 10, 12, 14, 16, 18 3, 6, 9, 12, 15, 18, 21, 24, 27 4, 8, 12, 16, 20, 24, 28, 32, 36 5, 10, 15, 20, 25, 30, 35, 40, 45 6, 12, 18, 24, 30, 36, 42, 48, 54 7, 14, 21, 28, 35, 42, 49, 56, 63 8, 16, 24, 32, 40, 48, 56, 64, 72 9, 18, 27, 36, 45, 54, 63, 72, 81 */ |
■ if…else if…else문을 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
for i in 1..101 { if i % 3 == 0 && i % 5 == 0 { println!("FizzBuzz"); } else if i % 3 == 0 { println!("Fizz"); } else if i % 5 == 0 { println!("Buzz"); } else { println!("{}", i); } } |
■ println! 매크로에서 포맷 문자열을 사용해 변수값을 출력하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 |
let banana = 300; println!("바나나 가격={}원", banana); |
■ for문을 사용하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
for i in 1..11 { println!("값 {}", i); } /* 값 1 값 2 값 3 값 4 값 5 값 6 값 7 값 8 값 9 값 10 */ |
■ println! 매크로를 사용해 줄 바꿈 문자열을 출력하는 방법을 보여준다. ▶ 예제 코드 (RS)
1 2 3 |
println!("Hello, World!"); |
■ 윈도우즈에서 Rust 개발 환경을 설치하는 방법을 보여준다. 1. Microsoft C++ Build Tools 설치 윈도우즈에서 러스트를 설치하려면 [Microsoft C++ Build Tools]를 설치해야