| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -103,7 +103,7 @@ sunface发表了微博好像微博没Tweet好用
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#### 默认实现
 | 
					 | 
					 | 
					 | 
					#### 默认实现
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					你可以在特征中定义具有**默认实现**的方法,这样其它类型无需再实现该方法,或者也可以选择重载该方法:
 | 
					 | 
					 | 
					 | 
					你可以在特征中定义具有**默认实现**的方法,这样其它类型无需再实现该方法,或者也可以选择重写该方法:
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					```rust
 | 
					 | 
					 | 
					 | 
					```rust
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					pub trait Summary {
 | 
					 | 
					 | 
					 | 
					pub trait Summary {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -125,7 +125,7 @@ impl Summary for Weibo {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					```
 | 
					 | 
					 | 
					 | 
					```
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					可以看到,`Post` 选择了默认实现,而 `Weibo` 重载了该方法,调用和输出如下:
 | 
					 | 
					 | 
					 | 
					可以看到,`Post` 选择了默认实现,而 `Weibo` 重写了该方法,调用和输出如下:
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					```rust
 | 
					 | 
					 | 
					 | 
					```rust
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    println!("{}",post.summarize());
 | 
					 | 
					 | 
					 | 
					    println!("{}",post.summarize());
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -432,7 +432,7 @@ fn main() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					再如 `Copy` 特征,它也有一套自动实现的默认代码,当标记到一个类型上时,可以让这个类型自动实现 `Copy` 特征,进而可以调用 `copy` 方法,进行自我复制。
 | 
					 | 
					 | 
					 | 
					再如 `Copy` 特征,它也有一套自动实现的默认代码,当标记到一个类型上时,可以让这个类型自动实现 `Copy` 特征,进而可以调用 `copy` 方法,进行自我复制。
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					总之,`derive` 派生出来的是 Rust 默认给我们提供的特征,在开发过程中极大的简化了自己手动实现相应特征的需求,当然,如果你有特殊的需求,还可以自己手动重载该实现。
 | 
					 | 
					 | 
					 | 
					总之,`derive` 派生出来的是 Rust 默认给我们提供的特征,在开发过程中极大的简化了自己手动实现相应特征的需求,当然,如果你有特殊的需求,还可以自己手动重写该实现。
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					详细的 `derive` 列表参见[附录-派生特征](https://course.rs/appendix/derive.html)。
 | 
					 | 
					 | 
					 | 
					详细的 `derive` 列表参见[附录-派生特征](https://course.rs/appendix/derive.html)。
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |