创建

我们使用impl语句块把实际代码关联到一个类型上:

  1. impl List {
  2. // TODO:填充代码
  3. }

现在我们只需要了解实际编写代码的方法。在Rust我们像这样声明一个函数:

  1. fn foo(arg1: Type1, arg2: Type2) -> ReturnType {
  2. // body
  3. }

我们想要的第一件事是构造一个列表的方法。由于我们需要隐藏实现细节,需要以函数的形式提供它。在Rust中,创建新对象的通常方法是实现一个impl块中的普通静态函数:

  1. impl List {
  2. pub fn new() -> Self {
  3. List { head: Link::Empty }
  4. }
  5. }

一些关键点:

  • Self是“我写在impl右侧的那个类型”的别名。不用重复真是太好了!
  • 创建一个struct的实例的语法和声明struct的语法基本相同,只是我们在每个字段的后面提供的是值而非它的类型。
  • 我们使用命名空间运算符::来访问enum的变体。
  • 函数的最后一个表达式被隐式的返回。这让简单的函数看起来更简洁。你仍然可以像其他C系语言一样,用return来提前返回。