Skip to content

Commit 7363f08

Browse files
authored
更新SCT.03例子 (#106)
1 parent fdaa4a8 commit 7363f08

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

src/safe-guides/coding_practice/data-type/struct/G.TYP.SCT.03.md

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,44 @@
1212

1313
```rust
1414
// 不符合
15-
let mut a: A = Default::default();
16-
a.i = 42;
15+
impl<'a> Colorize for &'a str {
16+
fn red(self) -> ColoredString {
17+
ColoredString {
18+
fgcolor: String::from("31"),
19+
input: String::from(self), // 该方法只更新 fgcolor 和 input
20+
bgcolor: String::default(); // 如果该结构体字段比较多的话,此处就需要指派很多字段,不太方便
21+
}
22+
}
23+
fn on_yellow(self) -> ColoredString {
24+
ColoredString {
25+
bgcolor: String::from("43"),
26+
input: String::from(self),
27+
fgcolor: String::default();
28+
}
29+
}
30+
}
1731
```
1832

1933
**【正例】**
2034

2135
```rust
2236
// 符合
23-
let a = A {
24-
i: 42,
25-
.. Default::default()
26-
};
37+
impl<'a> Colorize for &'a str {
38+
fn red(self) -> ColoredString {
39+
ColoredString {
40+
fgcolor: String::from("31"),
41+
input: String::from(self),
42+
..ColoredString::default() // 通过该语法,开发者可以快速了解该方法只更新 fgcolor 和 input,也不需要指派其他不需要更新的字段,更加方便
43+
}
44+
}
45+
fn on_yellow(self) -> ColoredString {
46+
ColoredString {
47+
bgcolor: String::from("43"),
48+
input: String::from(self),
49+
..ColoredString::default()
50+
}
51+
}
52+
}
2753
```
2854

2955
**【Lint 检测】**

0 commit comments

Comments
 (0)