2022-03-02 02:27:16 -06:00
|
|
|
1.
|
|
|
|
```rust
|
|
|
|
use std::mem::size_of_val;
|
|
|
|
fn main() {
|
|
|
|
let c1 = 'a';
|
|
|
|
assert_eq!(size_of_val(&c1),4);
|
|
|
|
|
|
|
|
let c2 = '中';
|
|
|
|
assert_eq!(size_of_val(&c2),4);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
2.
|
|
|
|
```rust
|
|
|
|
fn main() {
|
|
|
|
let c1 = '中';
|
|
|
|
print_char(c1);
|
|
|
|
}
|
|
|
|
|
|
|
|
fn print_char(c : char) {
|
|
|
|
println!("{}", c);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
3.
|
|
|
|
```rust
|
|
|
|
fn main() {
|
|
|
|
let _f: bool = false;
|
|
|
|
|
|
|
|
let t = false;
|
|
|
|
if !t {
|
|
|
|
println!("hello, world");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
4.
|
|
|
|
```rust
|
|
|
|
fn main() {
|
|
|
|
let f = true;
|
|
|
|
let t = true || false;
|
|
|
|
assert_eq!(t, f);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
5.
|
|
|
|
```rust
|
|
|
|
fn main() {
|
|
|
|
let v0: () = ();
|
|
|
|
|
|
|
|
let v = (2, 3);
|
|
|
|
assert_eq!(v0, implicitly_ret_unit())
|
|
|
|
}
|
|
|
|
|
|
|
|
fn implicitly_ret_unit() {
|
|
|
|
println!("I will returen a ()")
|
|
|
|
}
|
|
|
|
|
|
|
|
// don't use this one
|
|
|
|
fn explicitly_ret_unit() -> () {
|
|
|
|
println!("I will returen a ()")
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
6.
|
|
|
|
```rust
|
|
|
|
use std::mem::size_of_val;
|
|
|
|
fn main() {
|
|
|
|
let unit: () = ();
|
|
|
|
// unit type does't occupy any memeory space
|
|
|
|
assert!(size_of_val(&unit) == 0);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|