资源 #
Move 被设计为一种面向对象的语言,用于编写具有安全资源管理的智能合约或程序。资产被定义为“资源(resource)”,可以在账户之间移动,但不能被双花或重复。
这使得编写无错误代码变得非常容易,与 Solidity 相比,在 Solidity 中,资产的转移必须手动指定,从而增加了编写错误代码的可能性。
Resource 本来就是一个完美的存储数字资产的类型,要实现它必须是不可复制和不可丢弃的。同时,它必须可以在账户之间存储和转移。
定义资源:
struct ResourceName has key, store {
FIELD: TYPE
}
在模块名称之后调用模块的主要资源有一个约定。
module my_addrx::Basket
{
use std::string::String;
struct Basket has key,store //Basket is the resource containing list of fruits in the basket
{
list_of_fruits:vector<Fruit>
}
struct Fruit has store,drop,copy
{
name:String,
calories:u8
}
}