资源

资源 #

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
    }
}