diff --git a/__std/misc/src/bin/array_test.rs b/__std/misc/src/bin/array_test.rs new file mode 100644 index 0000000..f99b708 --- /dev/null +++ b/__std/misc/src/bin/array_test.rs @@ -0,0 +1,8 @@ +fn main() { + let arr = [1, 2, 3, 4, 5]; + println!("{:?}", arr); + println!("First value: {}", arr[0]); + println!("Last value: {}", arr[arr.len() - 1]); + let sum = arr.into_iter().reduce(|a, b| a + b); + println!("Sum: {:?}", sum); +} \ No newline at end of file diff --git a/__std/misc/src/bin/conditional_test.rs b/__std/misc/src/bin/conditional_test.rs new file mode 100644 index 0000000..9a464e1 --- /dev/null +++ b/__std/misc/src/bin/conditional_test.rs @@ -0,0 +1,13 @@ +#[cfg(target_os = "macos")] +fn get_os() -> &'static str { + "macos" +} + +#[cfg(not(target_os = "macos"))] +fn get_os() -> &'static str { + "unknown" +} + +fn main() { + println!("OS: {}", get_os()); +} \ No newline at end of file diff --git a/__std/misc/src/bin/drop_test.rs b/__std/misc/src/bin/drop_test.rs new file mode 100644 index 0000000..692bfaf --- /dev/null +++ b/__std/misc/src/bin/drop_test.rs @@ -0,0 +1,17 @@ +#[derive(Debug)] +struct Object {} + +impl Drop for Object { + fn drop(&mut self) { + println!("Object#drop"); + } +} + +fn main() { + { + let object = Object {}; + println!("Dump: {:?}", object); + println!("Block end."); + } + println!("Main end."); +} \ No newline at end of file diff --git a/__std/misc/src/bin/move_test.rs b/__std/misc/src/bin/move_test.rs new file mode 100644 index 0000000..eb94c78 --- /dev/null +++ b/__std/misc/src/bin/move_test.rs @@ -0,0 +1,10 @@ +fn print_name(name: String) { + println!("Name: {}", name); +} + +fn main() { + let name = String::from("Hatter"); + print_name(name); + let name_ref = &name; + println!("Name: {}", name_ref); +} \ No newline at end of file diff --git a/__std/misc/src/bin/string_substring_test.rs b/__std/misc/src/bin/string_substring_test.rs new file mode 100644 index 0000000..c1abff9 --- /dev/null +++ b/__std/misc/src/bin/string_substring_test.rs @@ -0,0 +1,4 @@ +fn main() { + let s = "中国"; + println!("{}", &s[0..2]); +} \ No newline at end of file diff --git a/__std/misc/src/bin/string_test.rs b/__std/misc/src/bin/string_test.rs new file mode 100644 index 0000000..5469ba4 --- /dev/null +++ b/__std/misc/src/bin/string_test.rs @@ -0,0 +1,10 @@ +// https://utf8everywhere.org/ +fn main() { + let s1 = "hello"; + let s2 = "中国"; + let s3 = "🎉🎉"; + + println!("{}: {} {}", s1, s1.len(), s1.chars().collect::>().len()); + println!("{}: {} {}", s2, s2.len(), s2.chars().collect::>().len()); + println!("{}: {} {}", s3, s3.len(), s3.chars().collect::>().len()); +} \ No newline at end of file diff --git a/__std/misc/src/bin/test_test.rs b/__std/misc/src/bin/test_test.rs new file mode 100644 index 0000000..8e2e053 --- /dev/null +++ b/__std/misc/src/bin/test_test.rs @@ -0,0 +1,11 @@ +fn add(a: i32, b: i32) -> i32 { + a + b +} + +#[test] +fn test_01() { + assert_eq!(2, add(1, 1)); + assert_eq!(3, add(1, 2)); +} + +fn main() {} diff --git a/__std/misc/src/bin/tuple_test.rs b/__std/misc/src/bin/tuple_test.rs new file mode 100644 index 0000000..969ea8f --- /dev/null +++ b/__std/misc/src/bin/tuple_test.rs @@ -0,0 +1,8 @@ +fn get_person_info() -> (String, i32) { + ("Hatter".into(), 40) +} + +fn main() { + let (name, age) = get_person_info(); + println!("{} is {} year(s) old", name, age); +} \ No newline at end of file diff --git a/__std/misc/src/bin/vec_test.rs b/__std/misc/src/bin/vec_test.rs new file mode 100644 index 0000000..bfb176a --- /dev/null +++ b/__std/misc/src/bin/vec_test.rs @@ -0,0 +1,9 @@ +fn main() { + let mut arr = vec![1, 2, 3, 4, 5]; + arr.push(6); + println!("{:?}", arr); + println!("First value: {}", arr[0]); + println!("Last value: {}", arr[arr.len() - 1]); + let sum = arr.into_iter().reduce(|a, b| a + b); + println!("Sum: {:?}", sum); +} \ No newline at end of file diff --git a/__std/misc/src/bin/while2_test.rs b/__std/misc/src/bin/while2_test.rs new file mode 100644 index 0000000..9052384 --- /dev/null +++ b/__std/misc/src/bin/while2_test.rs @@ -0,0 +1,7 @@ +fn main() { + let mut i = 0; + while i <= 99 { + println!("#i: {}", i); + i += 1; + } +} \ No newline at end of file diff --git a/__std/misc/src/bin/while_true_test.rs b/__std/misc/src/bin/while_true_test.rs new file mode 100644 index 0000000..21f5071 --- /dev/null +++ b/__std/misc/src/bin/while_true_test.rs @@ -0,0 +1,10 @@ +fn main() { + let mut i = 0; + while true { + println!("#i: {}", i); + i += 1; + if i > 99 { + break; + } + } +} \ No newline at end of file