From e10cc55479441d4b54e6aa6de7471460e991c78f Mon Sep 17 00:00:00 2001 From: osmannyildiz Date: Sat, 27 Apr 2024 17:41:39 +0300 Subject: [PATCH] day 1 (240427) --- .gitignore | 1 + Cargo.lock | 7 ++ Cargo.toml | 8 +++ src/main.rs | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 208 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..080fab2 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "icphub" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..97cf60d --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "icphub" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..aeb3127 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,192 @@ +fn main() { + let i8_var_i8: u128 = 123; + println!("Hello, {}!", i8_var_i8); + + let u32_var: u32 = 23; + let u64_var: u64 = 23; + // let result = u32_var + u64_var; + // let result = u64_var + u32_var; + // let result = (u32_var + u64_var) as u128; + // let result = (u64_var + u32_var) as u128; + // let result: u64 = u32_var + u64_var; + let result = u32_var as u64 + u64_var; + + println!("{2}, {1}, {0}, {2}!", 12, 34, '🦀'); + + let foo = -3.1415; + + println!("0.1 + 0.2 = {}", 0.1 + 0.2); + // 0.1 + 0.2 = 0.30000000000000004 + + let mut char_var = 'a'; + // char_var += 2; + + let one = [1, 2, 3]; + let two = [2; 3]; + // let three: [u32; 6] = [2; 3]; + // println!("{}, {}, {}", one, two, three); + // println!("{}, {}", one, two); + println!("{:?}, {:?}", one, two); + + let tuple = (2, 3.7, 'd'); + let string_slice = "ICP Hub"; + let string = String::new(); + let string2 = String::from("Türkiye Rust Community"); + println!("{}", string2); + + // Vectors: pointers, capacity, length + let vec_arr = vec![1, 2, 3, 4]; + // println!("{}", vec_arr); + println!("{:?}", vec_arr); + + #[derive(Debug)] + struct StructName { + field1: i32, + field2: f64, + } + + let struct_var = StructName { + field1: 1, + field2: 5.757, + }; + + // println!("{}", struct_var); + println!("{:?}", struct_var); + + // #[derive(Debug)] + // struct Student { + // // name: &str, + // name: String, + // surname: String, + // department: String, + // score: u32, + // } + // let mut student1 = Student { + // name: "Osman Nuri".to_string(), + // surname: String::from("Yıldız"), + // department: "Computer Engineering".to_string(), + // score: 100, + // }; + // student1.department = "Rustacean".to_string(); + // println!("{:?}", student1); + + enum EnumName { + Variant1, + Variant2(StructName), + Variant3(u32), + Variant4((i32, f64, char)), + Variant5(), + } + + #[derive(Debug, PartialEq)] + enum Department { + ComputerEngineering(Vec), + ElectricalEngineering((u16, String)), + MachineEngineering((u16, String)), + Science, + Education, + Social, + } + #[derive(Debug)] + struct Student { + name: String, + surname: String, + department: Department, + score: u32, + } + let mut student2 = Student { + name: "Osman Nuri".to_string(), + surname: String::from("Yıldız"), + department: Department::ComputerEngineering(vec!["Rust".to_string()]), + score: 100, + }; + student2.department = Department::ElectricalEngineering((10, "Rust".to_string())); + println!("{:?}", student2); + + // if student2.department == Department::ComputerEngineering(vec!["ICP".to_string()]) { + if student2.department + == Department::ComputerEngineering(vec!["ICP".to_string(), "Rust".to_string()]) + { + println!("True!") + } else { + println!("False!") + } + + loop { + println!("loop"); + break; + } + + let mut i = 0; + while i < 3 { + println!("while loop: {}", i); + i += 1; + } + + // for j in 1..5 { + // for j in 1..=5 { + for j in (1..=5).step_by(2) { + println!("for loop: {}", j) + } + + match student2.department { + // Department::ComputerEngineering(_) => todo!(), + Department::ComputerEngineering(lessons) => { + println!("Alınan dersler: {:?}", lessons) + } + // Department::ElectricalEngineering(_) => todo!(), + // Department::MachineEngineering(_) => todo!(), + // Department::Science => todo!(), + // Department::Education => todo!(), + // Department::Social => todo!(), + _ => { + println!("Daha sonra dene") + } + } + + #[derive(Debug)] + enum MembershipType { + Economy, + Business, + VIP, + } + #[derive(Debug)] + struct Member { + name: String, + surname: String, + membership_type: MembershipType, + } + #[derive(Debug)] + struct Library { + name: String, + members: Vec, + } + let lib = Library { + name: "Mamak Halk Kütüphanesi".to_string(), + members: vec![ + Member { + name: "Veli".to_string(), + surname: "Uysal".to_string(), + membership_type: MembershipType::VIP, + }, + Member { + name: "Mehmet".to_string(), + surname: "Hayırlı".to_string(), + membership_type: MembershipType::Business, + }, + ], + }; + println!("{:#?}", lib); + + let mut return_var = function_print("Naber la"); + return_var.push_str(" geldin mi?"); + println!("{}", return_var); +} + +fn function_print(s: &str) -> String { + println!("Gelen ifade: {}", s); + // return String::from(s); + String::from(s) +} + +// Tomorrow: trait, thread, canister