// 函数
最后函数部分,就是主要的内容了。
有几种不同的函数式
fun name() {}; //内部函数public fun name() {}; //公开函数public entry name() {}; //入口函数public(friend) fun name() {};//这我还不会 XD...
内部函数 - 此函数用于只有本合约内部可以调用、执行。
公开函数 - 在其他模组module可以调用、执行此函数。
入口函数 - 在部署合约后,用于外部执行指令的函数,意指,这是外部使用此合约的入口处。
name - 函数名称,通常使用小写+_来编名,如:buy_ham。
() - 括号内部为要带入的数值。
{} - 花括号内部为此函数的内容。
若此函数有需要return,在花括号后面需要加上 :类型
例如: fun name(){}:u64;
这样代表这串函数最后会返回一个数值。
需要注意的是,如果这函数为入口函数,那他就不可以有返回值。
大致上suimove的架构是如此,为了比较好学习,就让我们直接开始 製作三明治。
module sandwich::shop { //首先我们来建构要製作三明治的材料 struct Ham has key { id:UID } //宣告火腿结构,并赋予它id struct Bread has key { id:UID } //宣告麵包结构。 struct Sandwich has key { id:UID } //宣告三明治结构。
此处有将此三个结构都赋能key,此能力表明这些结构是可以在地址之间传输的Sui对象。
再来因为我们有在这里用到UID,这个类型,所以我们需要调用框架。
module sandwich::shop { use sui::object::UID // UID隶属于object里,所以从object指定调用它。 struct Ham has key { id:UID } struct Bread has key { id:UID } struct Sandwich has key { id:UID } //接着我们来给火腿跟麵包定价。 const HAM_PRICE: u64 = 10; const BREAD_PRICE: u64 = 2;