Rust 的 ownership 系统是他的最主要的特征。只有理解了ownership系统,才能真正算是入门。
&str 是一个由 Rust 语言实现的原生类型,而 String 则是由标准库实现的。
图中的 s 变量是&str,不是String
String 则是由标准库实现的。通过 String:: from 可以创建字符串类型的变量。
字符串类型的拼接。(self,&w
Rust 的绑定变量有一个属性:获得它所绑定资源的所有权。这意味着当绑定变量超出作用域时,它所绑定资源的资源就会释放。
有一点要注意:Rust确保有且只有一个变量绑定到给定的资源
不过我们可以借,使用&添加在 s 变量前
我们写了函数 take ,以 vector 为参数,调用函数 take 时将 v 的owership 传递给函数中 v,这就是 moving 。
因为这个例子里 a,b 的类型是i32,它实现了 copy trait,所以 cop(a,b) 这行代码执行时,rust会把a,b的值深度copy一份来用于。
我们写了一个 re 函数,以vector为参数,为了能让函数调用后, 原来的变量能正常使用,我们必须手动归还这个ownership。(见函数 re)
在Ownership一节,我们给出了一个手动归还Ownership例子,手动归还实在太不方便。Rust使用reference 来解决这个问题。这是reference版本的。(见函数 borrow1,borrow2)
用 struct 可以定义一定的数据结构,然后 impl 可以理解为继承或扩展,使用 impl 可以为 struct 数据结构添加方法。
网友评论