From ceceab59743e67c78f47ff02c78754e4bc4584de Mon Sep 17 00:00:00 2001 From: sunface Date: Wed, 9 Mar 2022 16:53:10 +0800 Subject: [PATCH] update book toc --- .DS_Store | Bin 0 -> 6148 bytes src/SUMMARY.md | 2 + src/about.md | 1 + src/type-conversions/from-into.md | 1 + src/type-conversions/others.md | 1 + zh-CN/.DS_Store | Bin 0 -> 6148 bytes zh-CN/src/.DS_Store | Bin 0 -> 6148 bytes zh-CN/src/SUMMARY.md | 5 +- zh-CN/src/about.md | 1 + zh-CN/src/type-conversion.md | 1 - zh-CN/src/type-conversions/as.md | 103 ++++++++++++++++++++++++ zh-CN/src/type-conversions/from-into.md | 1 + zh-CN/src/type-conversions/intro.md | 2 + zh-CN/src/type-conversions/others.md | 1 + 14 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 .DS_Store create mode 100644 src/about.md create mode 100644 src/type-conversions/from-into.md create mode 100644 src/type-conversions/others.md create mode 100644 zh-CN/.DS_Store create mode 100644 zh-CN/src/.DS_Store create mode 100644 zh-CN/src/about.md delete mode 100644 zh-CN/src/type-conversion.md create mode 100644 zh-CN/src/type-conversions/as.md create mode 100644 zh-CN/src/type-conversions/from-into.md create mode 100644 zh-CN/src/type-conversions/intro.md create mode 100644 zh-CN/src/type-conversions/others.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e4b8f743cec88e0186a653e541daecb06c5fc116 GIT binary patch literal 6148 zcmeHK%}T>S5Z<-brW7Fug&r5Y7ED_$h?h|73mDOZN=;1BV9b^zHHT8jSzpK}@p+ut z-GIfMMeGdhe)GGV{UH0p7~|tb*k{aUj9JhSIVv@R?%L3nNk-&2Mm7&(8G!W>%uVdC z1AcphWh`Y6LGk_j<0#7==aX+Wn%g@qt7UbpJMT#rUhe0MZ0x5uXkAJf2bJyzSJAAP z+Iwd*$^9sqrK%tbXOMDx9VMYG#&VH_nX2`4z-n9Vsoh;J2mMh`44vauPb^OcPEQ;S zN2^ua+CMlvy_i17FNu89baG%@$*#c)-a#>|dG*pHmdPV{s_ZI@kQg8ahyh|?vl%ew zg4Nk<8ff*z05MR*0PYV08lr2k)Tp)&=7p`UpzfkFnyBet{28e-m1{&J5@%%rBU#9kvzg|KX zF+dFbGX{8b;!Vb|D08;{SRS6W0@^(^6wE780ResO5&#D7BV85Lae+GIxduy(I12hz QIUrpG6d}|R1HZt)7m%b$egFUf literal 0 HcmV?d00001 diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 925e68f..ddb2070 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -34,6 +34,8 @@ - [HashMap](collections/hashmap.md) - [Type Conversion](type-conversions/intro.md) - [as](type-conversions/as.md) + - [From/Into](type-conversions/from-into.md) + - [Others](type-conversions/others.md) - [Result and panic todo](result-panic/intro.md) - [panic!](result-panic/panic.md) - [result and ?](result-panic/result.md) diff --git a/src/about.md b/src/about.md new file mode 100644 index 0000000..65054b7 --- /dev/null +++ b/src/about.md @@ -0,0 +1 @@ +# Rust By Practice diff --git a/src/type-conversions/from-into.md b/src/type-conversions/from-into.md new file mode 100644 index 0000000..fef65e6 --- /dev/null +++ b/src/type-conversions/from-into.md @@ -0,0 +1 @@ +# From/Into diff --git a/src/type-conversions/others.md b/src/type-conversions/others.md new file mode 100644 index 0000000..0d2e048 --- /dev/null +++ b/src/type-conversions/others.md @@ -0,0 +1 @@ +# Others diff --git a/zh-CN/.DS_Store b/zh-CN/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5172429f264de2441865cb4700216d4256da9242 GIT binary patch literal 6148 zcmeH~J!%6%427R!7lt%jx}3%b$PET#pTHLgIFQEJ;E>dF^gR7ES*H$5cmnB-G%I%Z zD|S`@Z2$T80!#olbXV*=%*>dt@PRwdU#I)^a=X5>;#J@&VrHyNnC;iLL0pQvfVyTmjO&;ssLc!1UOG})p;=82 zR;?Ceh}WZ?+UmMqI#RP8R>OzYoz15hnq@nzF`-!xQ4j$Um=RcIKKc27r2jVm&svm< zfC&6E0=7P!4tu^-ovjbA=k?dB`g+i*aXG_}p8zI)6mRKa+;6_1_R^8c3Qa!(fk8n8 H{*=HsM+*^= literal 0 HcmV?d00001 diff --git a/zh-CN/src/.DS_Store b/zh-CN/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0()); + // -100.0 as u8 is 156 + println!("-100.0 as u8 is {}", (-100.0_f32).to_int_unchecked::()); + // nan as u8 is 0 + println!("nan as u8 is {}", f32::NAN.to_int_unchecked::()); + } +} +``` + +4. 🌟🌟🌟 Raw pointer can be converted to memory address (integer) and vice versa +```rust,editable + +// FILL in the blanks +fn main() { + let mut values: [i32; 2] = [1, 2]; + let p1: *mut i32 = values.as_mut_ptr(); + let first_address: usize = p1 __; + let second_address = first_address + 4; // 4 == std::mem::size_of::() + let p2: *mut i32 = second_address __; // p2 points to the 2nd element in values + unsafe { + // add one to the second element + __ + } + + assert_eq!(values[1], 3); + + println!("Success!") +} +``` + + +5. 🌟🌟🌟 +```rust,editable +fn main() { + let arr :[u64; 13] = [0; 13]; + assert_eq!(std::mem::size_of_val(&arr), 8 * 13); + let a: *const [u64] = &arr; + let b = a as *const [u8]; + unsafe { + assert_eq!(std::mem::size_of_val(&*b), __) + } +} +``` diff --git a/zh-CN/src/type-conversions/from-into.md b/zh-CN/src/type-conversions/from-into.md new file mode 100644 index 0000000..fef65e6 --- /dev/null +++ b/zh-CN/src/type-conversions/from-into.md @@ -0,0 +1 @@ +# From/Into diff --git a/zh-CN/src/type-conversions/intro.md b/zh-CN/src/type-conversions/intro.md new file mode 100644 index 0000000..b2f15f9 --- /dev/null +++ b/zh-CN/src/type-conversions/intro.md @@ -0,0 +1,2 @@ +# Type conversions +There are several ways we can use to perform type conversions, such as `as`, `From/Intro`, `TryFrom/TryInto`, `transmute` etc. diff --git a/zh-CN/src/type-conversions/others.md b/zh-CN/src/type-conversions/others.md new file mode 100644 index 0000000..0d2e048 --- /dev/null +++ b/zh-CN/src/type-conversions/others.md @@ -0,0 +1 @@ +# Others