首页
学习
活动
专区
工具
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.7K40

    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

    31340

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券