From 3b805ff8a4ebbe4c1d2f0dba57d7dfd8696d06ce Mon Sep 17 00:00:00 2001 From: sunface Date: Tue, 1 Mar 2022 21:40:29 +0800 Subject: [PATCH] add solutions dir --- assets/temp.md | 87 +++++++++++++++++++++++++++++ solutions/basic-types/char-bool.md | 0 solutions/basic-types/functions.md | 0 solutions/basic-types/numbers.md | 0 solutions/basic-types/statements.md | 0 solutions/compound-types/array.md | 0 solutions/compound-types/enum.md | 0 solutions/compound-types/slice.md | 0 solutions/compound-types/string.md | 0 solutions/compound-types/struct.md | 0 solutions/compound-types/tuple.md | 0 solutions/flow-control.md | 0 solutions/ownership/borrowing.md | 0 solutions/ownership/ownership.md | 0 solutions/pattern-match/match.md | 0 solutions/pattern-match/patterns.md | 0 solutions/variables.md | 0 17 files changed, 87 insertions(+) create mode 100644 assets/temp.md create mode 100644 solutions/basic-types/char-bool.md create mode 100644 solutions/basic-types/functions.md create mode 100644 solutions/basic-types/numbers.md create mode 100644 solutions/basic-types/statements.md create mode 100644 solutions/compound-types/array.md create mode 100644 solutions/compound-types/enum.md create mode 100644 solutions/compound-types/slice.md create mode 100644 solutions/compound-types/string.md create mode 100644 solutions/compound-types/struct.md create mode 100644 solutions/compound-types/tuple.md create mode 100644 solutions/flow-control.md create mode 100644 solutions/ownership/borrowing.md create mode 100644 solutions/ownership/ownership.md create mode 100644 solutions/pattern-match/match.md create mode 100644 solutions/pattern-match/patterns.md create mode 100644 solutions/variables.md diff --git a/assets/temp.md b/assets/temp.md new file mode 100644 index 0000000..090250f --- /dev/null +++ b/assets/temp.md @@ -0,0 +1,87 @@ +# 字符、布尔、单元类型 + +### 字符 +🌟 +```rust + +use std::mem::size_of_val; +fn main() { + let c1 = 'a'; + assert_eq!(size_of_val(&c1),1); + + let c2 = '中'; + assert_eq!(size_of_val(&c2),3); +} +``` + +🌟 +```rust + +fn main() { + let c1 = "中"; + print_char(c1); +} + +fn print_char(c : char) { + println!("{}", c); +} +``` + +### 布尔 +🌟 +```rust + +// 让 println! 工作 +fn main() { + let _f: bool = false; + + let t = true; + if !t { + println!("hello, world"); + } +} +``` + +🌟 +```rust + +fn main() { + let f = true; + let t = true && false; + assert_eq!(t, f); +} +``` + + +### 单元类型 +🌟🌟 +```rust + +// 让代码工作,但不要修改 `implicitly_ret_unit` ! +fn main() { + let _v: () = (); + + let v = (2, 3); + assert_eq!(v, implicitly_ret_unit()) +} + +fn implicitly_ret_unit() { + println!("I will returen a ()") +} + +// 不要使用下面的函数,它只用于演示! +fn explicitly_ret_unit() -> () { + println!("I will returen a ()") +} +``` + +🌟🌟 单元类型占用的内存大小是多少? +```rust + +// 让代码工作:修改 `assert!` 中的 `4` +use std::mem::size_of_val; +fn main() { + let unit: () = (); + assert!(size_of_val(&unit) == 4); +} +``` \ No newline at end of file diff --git a/solutions/basic-types/char-bool.md b/solutions/basic-types/char-bool.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/basic-types/functions.md b/solutions/basic-types/functions.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/basic-types/numbers.md b/solutions/basic-types/numbers.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/basic-types/statements.md b/solutions/basic-types/statements.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/array.md b/solutions/compound-types/array.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/enum.md b/solutions/compound-types/enum.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/slice.md b/solutions/compound-types/slice.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/string.md b/solutions/compound-types/string.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/struct.md b/solutions/compound-types/struct.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/compound-types/tuple.md b/solutions/compound-types/tuple.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/flow-control.md b/solutions/flow-control.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/ownership/borrowing.md b/solutions/ownership/borrowing.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/ownership/ownership.md b/solutions/ownership/ownership.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/pattern-match/match.md b/solutions/pattern-match/match.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/pattern-match/patterns.md b/solutions/pattern-match/patterns.md new file mode 100644 index 0000000..e69de29 diff --git a/solutions/variables.md b/solutions/variables.md new file mode 100644 index 0000000..e69de29