File tree Expand file tree Collapse file tree 1 file changed +32
-6
lines changed
src/safe-guides/coding_practice/data-type/struct Expand file tree Collapse file tree 1 file changed +32
-6
lines changed Original file line number Diff line number Diff line change 12
12
13
13
``` rust
14
14
// 不符合
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
+ }
17
31
```
18
32
19
33
** 【正例】**
20
34
21
35
``` rust
22
36
// 符合
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
+ }
27
53
```
28
54
29
55
** 【Lint 检测】**
You can’t perform that action at this time.
0 commit comments