关键词impl与方法代码实现
学习内容
- 阐述关键词
impl基本概念 - 理解关键词
impl实现代码的方式
篇目
关键词impl概念
关键词impl是为类型实现结构类型或者其它一些类型的不同行为功能。这里仅仅说明了直接针对结构类型本身的不同行为实现方式。

实现功能关键词impl
Rust语言规定:
- Ⓓ 关键词
impl始终是公开的,且不可增加修饰关键词pub; - Ⓓ 关键词
impl实现的函数和方法默认都是私有的,且可增加修饰关键词pub。
默认实例代码如下所示。尽管下面代码已实现了函数new(),但是该函数外部还是不可访问的。
# #![allow(unused_variables)] #fn main() { #struct Person { # name: String, # age: u32, #} impl Person { fn new(name: String, age: u32) -> Person { Person { name: name, age: age, } } } #}
实现功能关键词impl与函数代码实现
通过下面的代码,可以学习到这些知识:
- 使用关键词
impl,实现结构类型StructType的实例化函数new(); - 使用关键词
pub,实现结构类型StructType的函数new()公开性; - 实例是一种类型的具体对象;
- 借助于公开性函数
new(),实现该结构类型的实例化方式; - 借助于结构类型属性的公开性,实现了实例调用结构类型的属性手法;
- 使用宏方法
assert_eq!,验证实例调用结果的正确性;
mod trait_exerci { pub struct StructType { pub data: u32, } impl StructType { pub fn new(data: u32) -> StructType { StructType { data: data } } } } // cargo run --example function_instance fn main() { let instance = trait_exerci::StructType::new(0); println!("instance.data = {}", instance.data); let instance = trait_exerci::StructType{ data:0, }; println!("instance.data = {}", instance.data); }
程序结构图与功能关键词impl
