Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 63.1MB ·虚拟内存 1300.0MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
函数 move_from
用来将 Resource 从账户下取出。
我们将实现 destroy
函数,将 Collection
的 T
Resource 从账户取出并且销毁它的内容。
// modules/Collection.move module Collection { // ... skipped ... public fun destroy(account: &signer) acquires Collection { // account no longer has resource attached let collection = move_from<Collection>(Signer::address_of(account)); // now we must use resource value - we'll destructure it // look carefully - Items must have drop ability let Collection { items: _ } = collection; // done. resource destroyed } }
Resource 必需被使用。因此,从账户下取出 Resource 时,要么将其作为返回值传递,要么将其销毁。
但是请记住,即使你将此 Resource 传递到外部并在脚本中获取,接下来能做的操作也非常有限。
因为脚本上下文不允许你对结构体或 Resource 做任何事情,除非 Resource 模块中定义了操作 Resource 公开方法,否则只能将其传递到其它地方。
知道这一点,就要求我们在设计模块时,为用户提供操作 Resource 的函数。
move_from
函数签名:
native fun move_from<T: key>(addr: address): T;