首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新贵Rust(2)—Ownership

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,它实现了 copytrait,所以 cop(a,b)这行代码执行时,rust会把a,b的值深度copy一份来用于。

我们写了一个 re 函数,以vector为参数,为了能让函数调用后, 原来的变量能正常使用,我们必须手动归还这个ownership。(见函数 re)

在Ownership一节,我们给出了一个手动归还Ownership例子,手动归还实在太不方便。Rust使用reference 来解决这个问题。这是reference版本的。(见函数 borrow1,borrow2)

用 struct 可以定义一定的数据结构,然后 impl 可以理解为继承或扩展,使用 impl 可以为 struct 数据结构添加方法。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321G04F4R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券