aboutsummaryrefslogtreecommitdiff
path: root/docs/play/sources
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2026-05-27 14:31:26 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2026-05-27 14:31:26 +0800
commit09435a6719b78ed51ce8bd708bd430dec4abd9c2 (patch)
tree0279b3ef7a206747748c28a47d8f086bc25717e6 /docs/play/sources
parent1ca45737fbceb7266c101f7faf06c005a4dea241 (diff)
Fix indentation and update Chinese documentation content
Diffstat (limited to 'docs/play/sources')
-rw-r--r--docs/play/sources/zh_CN/2-writing3.md190
1 files changed, 135 insertions, 55 deletions
diff --git a/docs/play/sources/zh_CN/2-writing3.md b/docs/play/sources/zh_CN/2-writing3.md
index e2038e3..252caab 100644
--- a/docs/play/sources/zh_CN/2-writing3.md
+++ b/docs/play/sources/zh_CN/2-writing3.md
@@ -7,10 +7,15 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-gen_program!();
+gen_program!();
```
---
@@ -22,12 +27,17 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
<<<<<<<<<< "我们将在此处编写渲染器代码"
-gen_program!();
+gen_program!();
```
---
@@ -39,12 +49,17 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
#[renderer] <<<<<<<<<< "和 #[chain] 类似,渲染器函数叫 #[renderer]"
-gen_program!();
+gen_program!();
```
---
@@ -56,13 +71,18 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits( <<<<<<<<<< "编写函数体"
-gen_program!();
+gen_program!();
```
---
@@ -74,13 +94,18 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits <<<<<<<<<< "声明接收 ResultFruits 类型"
-gen_program!();
+gen_program!();
```
---
@@ -92,13 +117,18 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {} <<<<<<<<<< "一般情况下,渲染器什么都不用返回"
-gen_program!();
+gen_program!();
```
---
@@ -110,15 +140,20 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
<<<<<<<<<< "接下来在此处编写渲染逻辑"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -130,15 +165,20 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
let vec: &Vec<String> = <<<<<<<<<< "首先我们先解包 ResultFruits"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -150,15 +190,20 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
let vec: &Vec<String> = <<<<<<<<<< "pack! 宏会自动为 ResultFruits 实现 AsRef trait"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -170,15 +215,20 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
let vec: &Vec<String> = result.as_ref(); <<<<<<<<<< "所以此处可以使用 as_ref()"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -190,15 +240,20 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
let vec: &Vec<String> = &*result; <<<<<<<<<< "当然,deref 也可以解包 ResultFruits"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -210,16 +265,21 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
+ let vec: &Vec<String> = &*result;
for fruit in vec { <<<<<<<<<< "接下来,循环遍历 ResultFruits 中的水果字符串"
-}
+}
-gen_program!();
+gen_program!();
```
---
@@ -231,18 +291,23 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
+ let vec: &Vec<String> = &*result;
for fruit in vec {
<<<<<<<<<< "在循环中打印内容"
}
}
-gen_program!();
+gen_program!();
```
---
@@ -254,18 +319,23 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
+ let vec: &Vec<String> = &*result;
for fruit in vec {
r_println!("{}", fruit) <<<<<<<<<< "使用 r_println 在循环中打印内容"
}
}
-gen_program!();
+gen_program!();
```
---
@@ -277,18 +347,23 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
-#[renderer]
+#[renderer]
fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
+ let vec: &Vec<String> = &*result;
for fruit in vec {
r_println!("{}", fruit)
}
}
-gen_program!();
+gen_program!();
```
---
@@ -302,16 +377,21 @@ pack!(ResultFruits = Vec<String>);
#[chain]
fn handle_entry_list(_prev: EntryList) -> Next {
- // ...
+ let fruits = vec![
+ "Apple".to_string(),
+ "Banana".to_string(),
+ "Orange".to_string(),
+ ];
+ ResultFruits::new(fruits)
}
#[renderer]
fn render_fruits(result: ResultFruits) {
- let vec: &Vec<String> = &*result;
+ let vec: &Vec<String> = &*result;
for fruit in vec {
r_println!("{}", fruit)
}
}
-gen_program!();
+gen_program!();
```