首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

放弃Python拥抱Mojo?鹅厂工程师真实使用感受

另一个重要的内存安全概念是对象的所有权,当一个函数获取了对象的所有权后,调用方就不应该再去使用这个对象了,例如我们实现了一个只支持移动的类型 UniquePtr: struct UniquePtr:...existing.ptr fn __del__(owned self): self.ptr = 0 同时,我们有两个函数,其中,use_ptr 使用了前面提到的 borrow 关键字,借用了 UniquePtr...那么,在调用 take_ptr 的时候,我们就需要在参数后面加上 ^ 后缀,用来表明我们将所有权转移给 take_ptr: fn use_ptr(borrowed p: UniquePtr):...print(p.ptr) fn take_ptr(owned p: UniquePtr): print(p.ptr) fn test_ownership(): let p = UniquePtr...test_ownership() 因此,如果我们将 use_ptr 和 take_ptr 的调用顺序调换一下,就会出现编译错误: fn test_ownership(): let p = UniquePtr

1.2K40

AI 届新语言 Mojo 要?????

另一个重要的内存安全概念是对象的所有权,当一个函数获取了对象的所有权后,调用方就不应该再去使用这个对象了,例如我们实现了一个只支持移动的类型 UniquePtr: struct UniquePtr:...existing.ptr fn __del__(owned self): self.ptr = 0 同时,我们有两个函数,其中,use_ptr 使用了前面提到的 borrow 关键字,借用了 UniquePtr...那么,在调用 take_ptr 的时候,我们就需要在参数后面加上 ^ 后缀,用来表明我们将所有权转移给 take_ptr: fn use_ptr(borrowed p: UniquePtr):...print(p.ptr) fn take_ptr(owned p: UniquePtr): print(p.ptr) fn test_ownership(): let p = UniquePtr...test_ownership() 因此,如果我们将 use_ptr 和 take_ptr 的调用顺序调换一下,就会出现编译错误: fn test_ownership(): let p = UniquePtr

23040

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券