创建
我们使用impl
语句块把实际代码关联到一个类型上:
impl List {
// TODO:填充代码
}
现在我们只需要了解实际编写代码的方法。在Rust我们像这样声明一个函数:
fn foo(arg1: Type1, arg2: Type2) -> ReturnType {
// body
}
我们想要的第一件事是构造一个列表的方法。由于我们需要隐藏实现细节,需要以函数的形式提供它。在Rust中,创建新对象的通常方法是实现一个impl
块中的普通静态函数:
impl List {
pub fn new() -> Self {
List { head: Link::Empty }
}
}
一些关键点:
- Self是“我写在impl右侧的那个类型”的别名。不用重复真是太好了!
- 创建一个struct的实例的语法和声明struct的语法基本相同,只是我们在每个字段的后面提供的是值而非它的类型。
- 我们使用命名空间运算符
::
来访问enum的变体。 - 函数的最后一个表达式被隐式的返回。这让简单的函数看起来更简洁。你仍然可以像其他C系语言一样,用
return
来提前返回。