美文网首页程序员
新贵Rust (2)—Ownership

新贵Rust (2)—Ownership

作者: zidea | 来源:发表于2019-01-11 05:58 被阅读10次

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 数据结构添加方法。

相关文章

网友评论

    本文标题:新贵Rust (2)—Ownership

    本文链接:https://www.haomeiwen.com/subject/brairqtx.html