mirror of
https://github.com/sunface/rust-by-practice.git
synced 2025-06-23 04:29:41 +00:00
update readme
This commit is contained in:
78
zh-CN/src/SUMMARY.md
Normal file
78
zh-CN/src/SUMMARY.md
Normal file
@ -0,0 +1,78 @@
|
||||
# Summary
|
||||
|
||||
- [关于 exercise.rs](why-exercise.md)
|
||||
- [变量绑定与解构 todo](variables.md)
|
||||
- [基本类型 todo](basic-types/intro.md)
|
||||
- [数值类型](basic-types/numbers.md)
|
||||
- [字符、布尔、单元类型](basic-types/char-bool-unit.md)
|
||||
- [语句与表达式](basic-types/statements-expressions.md)
|
||||
- [函数](basic-types/functions.md)
|
||||
- [所有权和借用 todo](ownership/intro.md)
|
||||
- [所有权](ownership/ownership.md)
|
||||
- [引用和借用](ownership/borrowing.md)
|
||||
- [复合类型 todo](compound-types/intro.md)
|
||||
- [字符串与切片](compound-types/string-slice.md)
|
||||
- [元组](compound-types/tuple.md)
|
||||
- [结构体](compound-types/struct.md)
|
||||
- [枚举](compound-types/enum.md)
|
||||
- [数组](compound-types/array.md)
|
||||
- [流程控制 todo](flow-control.md)
|
||||
- [模式匹配 todo](pattern-match/intro.md)
|
||||
- [match 和 if let](pattern-match/match-iflet.md)
|
||||
- [解构 Option](pattern-match/option.md)
|
||||
- [模式](pattern-match/patterns.md)
|
||||
- [方法 Method todo](method.md)
|
||||
- [泛型和特征 todo](generics-traits/intro.md)
|
||||
- [泛型 Generics](generics-traits/generics.md)
|
||||
- [特征 Traits](generics-traits/traits.md)
|
||||
- [特征对象](generics-traits/trait-object.md)
|
||||
- [进一步深入特征](generics-traits/advance-traits.md)
|
||||
- [集合类型 todo](collections/intro.md)
|
||||
- [动态数组 Vector](collections/vector.md)
|
||||
- [KV 存储 HashMap](collections/hashmap.md)
|
||||
- [类型转换 todo](type-conversion.md)
|
||||
- [返回值和 panic! todo](result-panic/intro.md)
|
||||
- [panic! 深入剖析](result-panic/panic.md)
|
||||
- [返回值result 和 ?](result-panic/result.md)
|
||||
- [包和模块 todo](crate-module/intro.md)
|
||||
- [包 Crate](crate-module/crate.md)
|
||||
- [模块 Module](crate-module/module.md)
|
||||
- [使用use引入模块及受限可见性](crate-module/use-pub.md)
|
||||
- [注释和文档 todo](comments-docs.md)
|
||||
- [格式化输出 todo](formatted-output.md)
|
||||
- [生命周期 todo](lifetime/intro.md)
|
||||
- [生命周期基础](lifetime/basic.md)
|
||||
- [&'static 和 T: 'static](lifetime/static.md)
|
||||
- [深入生命周期](lifetime/advance.md)
|
||||
- [函数式编程: 闭包、迭代器 todo](functional-programing/intro.md)
|
||||
- [闭包 Closure](functional-programing/cloure.md)
|
||||
- [迭代器 Iterator](functional-programing/iterator.md)
|
||||
- [newtype 和 Sized todo](newtype-sized.md)
|
||||
- [智能指针 todo](smart-pointers/intro.md)
|
||||
- [Box](smart-pointers/box.md)
|
||||
- [Deref](smart-pointers/deref.md)
|
||||
- [Drop](smart-pointers/drop.md)
|
||||
- [Rc and Arc](smart-pointers/rc-arc.md)
|
||||
- [Cell and RefCell](smart-pointers/cell-refcell.md)
|
||||
- [Weak 和循环引用todo](weak.md)
|
||||
- [自引用 todo](self-referential.md)
|
||||
- [多线程 todo](threads/intro.md)
|
||||
- [多线程基础](threads/basic-using.md)
|
||||
- [消息传递](threads/message-passing.md)
|
||||
- [线程同步:锁、Condvar和信号量](threads/sync.md)
|
||||
- [线程同步:Atomic](threads/atomic.md)
|
||||
- [Send 和 Sync](threads/send-sync.md)
|
||||
- [全局变量 todo](global-variables.md)
|
||||
- [错误处理 todo](errors.md)
|
||||
- [unsafe todo](unsafe.md)
|
||||
- [macro 宏 todo](macro.md)
|
||||
- [测试 todo](tests/intro.md)
|
||||
- [编写测试及控制执行](tests/write-tests.md)
|
||||
- [基准性能测试 Benchmark](tests/benchmark.md)
|
||||
- [单元测试及集成测试](tests/unit-integration.md)
|
||||
- [断言 Assertions](tests/assertions.md)
|
||||
- [Async/Await 异步编程 todo](async/intro.md)
|
||||
- [async 和 await!](async/async-await.md)
|
||||
- [Future](async/future.md)
|
||||
- [Pin 和 Unpin](async/pin-unpin.md)
|
||||
- [Stream 流处理](async/stream.md)
|
1
zh-CN/src/async/async-await.md
Normal file
1
zh-CN/src/async/async-await.md
Normal file
@ -0,0 +1 @@
|
||||
# async and await!
|
1
zh-CN/src/async/future.md
Normal file
1
zh-CN/src/async/future.md
Normal file
@ -0,0 +1 @@
|
||||
# Future
|
1
zh-CN/src/async/intro.md
Normal file
1
zh-CN/src/async/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Async/Await
|
1
zh-CN/src/async/pin-unpin.md
Normal file
1
zh-CN/src/async/pin-unpin.md
Normal file
@ -0,0 +1 @@
|
||||
# Pin and Unpin
|
1
zh-CN/src/async/stream.md
Normal file
1
zh-CN/src/async/stream.md
Normal file
@ -0,0 +1 @@
|
||||
# Stream
|
1
zh-CN/src/basic-types/char-bool-unit.md
Normal file
1
zh-CN/src/basic-types/char-bool-unit.md
Normal file
@ -0,0 +1 @@
|
||||
# Char, Bool and Unit
|
1
zh-CN/src/basic-types/functions.md
Normal file
1
zh-CN/src/basic-types/functions.md
Normal file
@ -0,0 +1 @@
|
||||
# Functions
|
1
zh-CN/src/basic-types/intro.md
Normal file
1
zh-CN/src/basic-types/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Basic Types
|
1
zh-CN/src/basic-types/numbers.md
Normal file
1
zh-CN/src/basic-types/numbers.md
Normal file
@ -0,0 +1 @@
|
||||
# Numbers
|
1
zh-CN/src/basic-types/statements-expressions.md
Normal file
1
zh-CN/src/basic-types/statements-expressions.md
Normal file
@ -0,0 +1 @@
|
||||
# Statements and Expressions
|
1
zh-CN/src/circle-refer
Normal file
1
zh-CN/src/circle-refer
Normal file
@ -0,0 +1 @@
|
||||
# Weak and Circle reference
|
1
zh-CN/src/circle-reference/intro.md
Normal file
1
zh-CN/src/circle-reference/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Circle reference and Self referential
|
1
zh-CN/src/collections/hashmap.md
Normal file
1
zh-CN/src/collections/hashmap.md
Normal file
@ -0,0 +1 @@
|
||||
# HashMap
|
1
zh-CN/src/collections/intro.md
Normal file
1
zh-CN/src/collections/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Collection Types
|
1
zh-CN/src/collections/vector.md
Normal file
1
zh-CN/src/collections/vector.md
Normal file
@ -0,0 +1 @@
|
||||
# Vector
|
1
zh-CN/src/comments-docs.md
Normal file
1
zh-CN/src/comments-docs.md
Normal file
@ -0,0 +1 @@
|
||||
# Comments and Docs
|
1
zh-CN/src/compound-types/array.md
Normal file
1
zh-CN/src/compound-types/array.md
Normal file
@ -0,0 +1 @@
|
||||
# array
|
1
zh-CN/src/compound-types/enum.md
Normal file
1
zh-CN/src/compound-types/enum.md
Normal file
@ -0,0 +1 @@
|
||||
# enum
|
1
zh-CN/src/compound-types/intro.md
Normal file
1
zh-CN/src/compound-types/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Compound Types
|
1
zh-CN/src/compound-types/string-slice.md
Normal file
1
zh-CN/src/compound-types/string-slice.md
Normal file
@ -0,0 +1 @@
|
||||
# string and slice
|
1
zh-CN/src/compound-types/struct.md
Normal file
1
zh-CN/src/compound-types/struct.md
Normal file
@ -0,0 +1 @@
|
||||
# struct
|
1
zh-CN/src/compound-types/tuple.md
Normal file
1
zh-CN/src/compound-types/tuple.md
Normal file
@ -0,0 +1 @@
|
||||
# tuple
|
1
zh-CN/src/crate
Normal file
1
zh-CN/src/crate
Normal file
@ -0,0 +1 @@
|
||||
# Crate
|
1
zh-CN/src/crate-module/crate.md
Normal file
1
zh-CN/src/crate-module/crate.md
Normal file
@ -0,0 +1 @@
|
||||
# Crate
|
1
zh-CN/src/crate-module/intro.md
Normal file
1
zh-CN/src/crate-module/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Crate and module
|
1
zh-CN/src/crate-module/module.md
Normal file
1
zh-CN/src/crate-module/module.md
Normal file
@ -0,0 +1 @@
|
||||
# Module
|
1
zh-CN/src/crate-module/use-pub.md
Normal file
1
zh-CN/src/crate-module/use-pub.md
Normal file
@ -0,0 +1 @@
|
||||
# use and pub
|
1
zh-CN/src/errors.md
Normal file
1
zh-CN/src/errors.md
Normal file
@ -0,0 +1 @@
|
||||
# Errors
|
1
zh-CN/src/flow-control.md
Normal file
1
zh-CN/src/flow-control.md
Normal file
@ -0,0 +1 @@
|
||||
# Flow Control
|
1
zh-CN/src/formatted-output.md
Normal file
1
zh-CN/src/formatted-output.md
Normal file
@ -0,0 +1 @@
|
||||
# Formatted output
|
51
zh-CN/src/functional-programing/cloure.md
Normal file
51
zh-CN/src/functional-programing/cloure.md
Normal file
@ -0,0 +1,51 @@
|
||||
# Closure
|
||||
|
||||
下面代码是Rust圣经课程中[闭包](http://course.rs/advance/functional-programing/closure.html#结构体中的闭包)章节的课内练习题答案:
|
||||
|
||||
```rust
|
||||
struct Cacher<T,E>
|
||||
where
|
||||
T: Fn(E) -> E,
|
||||
E: Copy
|
||||
{
|
||||
query: T,
|
||||
value: Option<E>,
|
||||
}
|
||||
|
||||
impl<T,E> Cacher<T,E>
|
||||
where
|
||||
T: Fn(E) -> E,
|
||||
E: Copy
|
||||
{
|
||||
fn new(query: T) -> Cacher<T,E> {
|
||||
Cacher {
|
||||
query,
|
||||
value: None,
|
||||
}
|
||||
}
|
||||
|
||||
fn value(&mut self, arg: E) -> E {
|
||||
match self.value {
|
||||
Some(v) => v,
|
||||
None => {
|
||||
let v = (self.query)(arg);
|
||||
self.value = Some(v);
|
||||
v
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fn main() {
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn call_with_different_values() {
|
||||
let mut c = Cacher::new(|a| a);
|
||||
|
||||
let v1 = c.value(1);
|
||||
let v2 = c.value(2);
|
||||
|
||||
assert_eq!(v2, 1);
|
||||
}
|
||||
```
|
1
zh-CN/src/functional-programing/intro.md
Normal file
1
zh-CN/src/functional-programing/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Functional programing
|
1
zh-CN/src/functional-programing/iterator.md
Normal file
1
zh-CN/src/functional-programing/iterator.md
Normal file
@ -0,0 +1 @@
|
||||
# Iterator
|
51
zh-CN/src/functional-programming/closure.md
Normal file
51
zh-CN/src/functional-programming/closure.md
Normal file
@ -0,0 +1,51 @@
|
||||
# Closure
|
||||
|
||||
下面代码是Rust圣经课程中[闭包](http://course.rs/advance/functional-programing/closure.html#结构体中的闭包)章节的课内练习题答案:
|
||||
|
||||
```rust
|
||||
struct Cacher<T,E>
|
||||
where
|
||||
T: Fn(E) -> E,
|
||||
E: Copy
|
||||
{
|
||||
query: T,
|
||||
value: Option<E>,
|
||||
}
|
||||
|
||||
impl<T,E> Cacher<T,E>
|
||||
where
|
||||
T: Fn(E) -> E,
|
||||
E: Copy
|
||||
{
|
||||
fn new(query: T) -> Cacher<T,E> {
|
||||
Cacher {
|
||||
query,
|
||||
value: None,
|
||||
}
|
||||
}
|
||||
|
||||
fn value(&mut self, arg: E) -> E {
|
||||
match self.value {
|
||||
Some(v) => v,
|
||||
None => {
|
||||
let v = (self.query)(arg);
|
||||
self.value = Some(v);
|
||||
v
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fn main() {
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn call_with_different_values() {
|
||||
let mut c = Cacher::new(|a| a);
|
||||
|
||||
let v1 = c.value(1);
|
||||
let v2 = c.value(2);
|
||||
|
||||
assert_eq!(v2, 1);
|
||||
}
|
||||
```
|
1
zh-CN/src/functional-programming/intro.md
Normal file
1
zh-CN/src/functional-programming/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Functional Programming
|
1
zh-CN/src/generics-traits/advance-traits.md
Normal file
1
zh-CN/src/generics-traits/advance-traits.md
Normal file
@ -0,0 +1 @@
|
||||
# Advance Traits
|
1
zh-CN/src/generics-traits/generics.md
Normal file
1
zh-CN/src/generics-traits/generics.md
Normal file
@ -0,0 +1 @@
|
||||
# Generics
|
1
zh-CN/src/generics-traits/intro.md
Normal file
1
zh-CN/src/generics-traits/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Generics and Traits
|
1
zh-CN/src/generics-traits/trait-object.md
Normal file
1
zh-CN/src/generics-traits/trait-object.md
Normal file
@ -0,0 +1 @@
|
||||
# Trait Object
|
1
zh-CN/src/generics-traits/traits.md
Normal file
1
zh-CN/src/generics-traits/traits.md
Normal file
@ -0,0 +1 @@
|
||||
# Traits
|
1
zh-CN/src/global-variables.md
Normal file
1
zh-CN/src/global-variables.md
Normal file
@ -0,0 +1 @@
|
||||
# Global variables
|
1
zh-CN/src/lifetime/advance.md
Normal file
1
zh-CN/src/lifetime/advance.md
Normal file
@ -0,0 +1 @@
|
||||
# advance
|
26
zh-CN/src/lifetime/basic.md
Normal file
26
zh-CN/src/lifetime/basic.md
Normal file
@ -0,0 +1,26 @@
|
||||
## 生命周期消除
|
||||
|
||||
```rust
|
||||
fn print(s: &str); // elided
|
||||
fn print<'a>(s: &'a str); // expanded
|
||||
|
||||
fn debug(lvl: usize, s: &str); // elided
|
||||
fn debug<'a>(lvl: usize, s: &'a str); // expanded
|
||||
|
||||
fn substr(s: &str, until: usize) -> &str; // elided
|
||||
fn substr<'a>(s: &'a str, until: usize) -> &'a str; // expanded
|
||||
|
||||
fn get_str() -> &str; // ILLEGAL
|
||||
|
||||
fn frob(s: &str, t: &str) -> &str; // ILLEGAL
|
||||
|
||||
fn get_mut(&mut self) -> &mut T; // elided
|
||||
fn get_mut<'a>(&'a mut self) -> &'a mut T; // expanded
|
||||
|
||||
fn args<T: ToCStr>(&mut self, args: &[T]) -> &mut Command // elided
|
||||
fn args<'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command // expanded
|
||||
|
||||
fn new(buf: &mut [u8]) -> BufWriter; // elided
|
||||
fn new(buf: &mut [u8]) -> BufWriter<'_>; // elided (with `rust_2018_idioms`)
|
||||
fn new<'a>(buf: &'a mut [u8]) -> BufWriter<'a> // expanded
|
||||
```
|
1
zh-CN/src/lifetime/intro.md
Normal file
1
zh-CN/src/lifetime/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Lifetime
|
49
zh-CN/src/lifetime/static.md
Normal file
49
zh-CN/src/lifetime/static.md
Normal file
@ -0,0 +1,49 @@
|
||||
# &'static and T: 'static
|
||||
|
||||
```rust,editable
|
||||
use std::fmt::Display;
|
||||
|
||||
fn main() {
|
||||
let mut string = "First".to_owned();
|
||||
|
||||
string.push_str(string.to_uppercase().as_str());
|
||||
print_a(&string);
|
||||
print_b(&string);
|
||||
print_c(&string); // Compilation error
|
||||
print_d(&string); // Compilation error
|
||||
print_e(&string);
|
||||
print_f(&string);
|
||||
print_g(&string); // Compilation error
|
||||
}
|
||||
|
||||
fn print_a<T: Display + 'static>(t: &T) {
|
||||
println!("{}", t);
|
||||
}
|
||||
|
||||
fn print_b<T>(t: &T)
|
||||
where
|
||||
T: Display + 'static,
|
||||
{
|
||||
println!("{}", t);
|
||||
}
|
||||
|
||||
fn print_c(t: &'static dyn Display) {
|
||||
println!("{}", t)
|
||||
}
|
||||
|
||||
fn print_d(t: &'static impl Display) {
|
||||
println!("{}", t)
|
||||
}
|
||||
|
||||
fn print_e(t: &(dyn Display + 'static)) {
|
||||
println!("{}", t)
|
||||
}
|
||||
|
||||
fn print_f(t: &(impl Display + 'static)) {
|
||||
println!("{}", t)
|
||||
}
|
||||
|
||||
fn print_g(t: &'static String) {
|
||||
println!("{}", t);
|
||||
}
|
||||
```
|
1
zh-CN/src/macro.md
Normal file
1
zh-CN/src/macro.md
Normal file
@ -0,0 +1 @@
|
||||
# macro
|
1
zh-CN/src/method.md
Normal file
1
zh-CN/src/method.md
Normal file
@ -0,0 +1 @@
|
||||
# Method
|
1
zh-CN/src/newtype-sized.md
Normal file
1
zh-CN/src/newtype-sized.md
Normal file
@ -0,0 +1 @@
|
||||
# newtype and Sized
|
1
zh-CN/src/ownership/borrowing.md
Normal file
1
zh-CN/src/ownership/borrowing.md
Normal file
@ -0,0 +1 @@
|
||||
# Reference and Borrowing
|
1
zh-CN/src/ownership/intro.md
Normal file
1
zh-CN/src/ownership/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Ownership and Borrowing
|
1
zh-CN/src/ownership/ownership.md
Normal file
1
zh-CN/src/ownership/ownership.md
Normal file
@ -0,0 +1 @@
|
||||
# Ownership
|
1
zh-CN/src/pattern-match/intro.md
Normal file
1
zh-CN/src/pattern-match/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Pattern Match
|
1
zh-CN/src/pattern-match/match-iflet.md
Normal file
1
zh-CN/src/pattern-match/match-iflet.md
Normal file
@ -0,0 +1 @@
|
||||
# match, if let
|
1
zh-CN/src/pattern-match/option.md
Normal file
1
zh-CN/src/pattern-match/option.md
Normal file
@ -0,0 +1 @@
|
||||
# Option destructing
|
1
zh-CN/src/pattern-match/patterns.md
Normal file
1
zh-CN/src/pattern-match/patterns.md
Normal file
@ -0,0 +1 @@
|
||||
# Patterns
|
1
zh-CN/src/resu
Normal file
1
zh-CN/src/resu
Normal file
@ -0,0 +1 @@
|
||||
# panic!
|
1
zh-CN/src/result-panic/intro.md
Normal file
1
zh-CN/src/result-panic/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Result and panic
|
1
zh-CN/src/result-panic/panic.md
Normal file
1
zh-CN/src/result-panic/panic.md
Normal file
@ -0,0 +1 @@
|
||||
# panic!
|
1
zh-CN/src/result-panic/result.md
Normal file
1
zh-CN/src/result-panic/result.md
Normal file
@ -0,0 +1 @@
|
||||
# result and ?
|
1
zh-CN/src/self-referential.md
Normal file
1
zh-CN/src/self-referential.md
Normal file
@ -0,0 +1 @@
|
||||
# Self referential
|
1
zh-CN/src/smart-pointers/box.md
Normal file
1
zh-CN/src/smart-pointers/box.md
Normal file
@ -0,0 +1 @@
|
||||
# Box
|
1
zh-CN/src/smart-pointers/cell-refcell.md
Normal file
1
zh-CN/src/smart-pointers/cell-refcell.md
Normal file
@ -0,0 +1 @@
|
||||
# Cell and RefCell
|
1
zh-CN/src/smart-pointers/deref.md
Normal file
1
zh-CN/src/smart-pointers/deref.md
Normal file
@ -0,0 +1 @@
|
||||
# Deref
|
1
zh-CN/src/smart-pointers/drop.md
Normal file
1
zh-CN/src/smart-pointers/drop.md
Normal file
@ -0,0 +1 @@
|
||||
# Drop
|
1
zh-CN/src/smart-pointers/intro.md
Normal file
1
zh-CN/src/smart-pointers/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Smart pointers
|
1
zh-CN/src/smart-pointers/rc-arc.md
Normal file
1
zh-CN/src/smart-pointers/rc-arc.md
Normal file
@ -0,0 +1 @@
|
||||
# Rc and Arc
|
1
zh-CN/src/tests/assertions.md
Normal file
1
zh-CN/src/tests/assertions.md
Normal file
@ -0,0 +1 @@
|
||||
# Assertions
|
3
zh-CN/src/tests/benchmark.md
Normal file
3
zh-CN/src/tests/benchmark.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Benchmark
|
||||
|
||||
https://doc.rust-lang.org/unstable-book/library-features/test.html
|
1
zh-CN/src/tests/intro.md
Normal file
1
zh-CN/src/tests/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Tests
|
1
zh-CN/src/tests/unit-integration.md
Normal file
1
zh-CN/src/tests/unit-integration.md
Normal file
@ -0,0 +1 @@
|
||||
# Unit and Integration
|
1
zh-CN/src/tests/write-tests.md
Normal file
1
zh-CN/src/tests/write-tests.md
Normal file
@ -0,0 +1 @@
|
||||
# Write Tests
|
1
zh-CN/src/threads/atomic.md
Normal file
1
zh-CN/src/threads/atomic.md
Normal file
@ -0,0 +1 @@
|
||||
# Atomic
|
1
zh-CN/src/threads/basic-using.md
Normal file
1
zh-CN/src/threads/basic-using.md
Normal file
@ -0,0 +1 @@
|
||||
# Basic using
|
1
zh-CN/src/threads/intro.md
Normal file
1
zh-CN/src/threads/intro.md
Normal file
@ -0,0 +1 @@
|
||||
# Threads
|
1
zh-CN/src/threads/message-passing.md
Normal file
1
zh-CN/src/threads/message-passing.md
Normal file
@ -0,0 +1 @@
|
||||
# Message passing
|
1
zh-CN/src/threads/send-sync.md
Normal file
1
zh-CN/src/threads/send-sync.md
Normal file
@ -0,0 +1 @@
|
||||
# Send and Sync
|
1
zh-CN/src/threads/sync.md
Normal file
1
zh-CN/src/threads/sync.md
Normal file
@ -0,0 +1 @@
|
||||
# Sync
|
1
zh-CN/src/type-conversion.md
Normal file
1
zh-CN/src/type-conversion.md
Normal file
@ -0,0 +1 @@
|
||||
# Type Conversion
|
1
zh-CN/src/unsafe.md
Normal file
1
zh-CN/src/unsafe.md
Normal file
@ -0,0 +1 @@
|
||||
# unsafe
|
1
zh-CN/src/variables.md
Normal file
1
zh-CN/src/variables.md
Normal file
@ -0,0 +1 @@
|
||||
# Variables
|
1
zh-CN/src/weak.md
Normal file
1
zh-CN/src/weak.md
Normal file
@ -0,0 +1 @@
|
||||
# Weak and Circle reference
|
1
zh-CN/src/why-exercise.md
Normal file
1
zh-CN/src/why-exercise.md
Normal file
@ -0,0 +1 @@
|
||||
# Why Exercise.rs
|
Reference in New Issue
Block a user