Move Move笔记
目前Move的资料特别少,英文好的直接去官方文档中心https://diem.github.io/move/introduction.html 喜欢看中文的去到对应的中文翻译 https://github.com/move-language/move/blob/main/language/documentation/book/translations/move-book-zh/src/SUMMARY.md 除此之外,还有一个中文文档地方 https://move-book.com/cn/introduction/getting-started.html 喜欢视频的去到 http://www.aptoseden.com/#/dashbord 国内目前查到的就这么多把,老铁如果有更好的链接请留言分享,谢谢
与其他语言不同,第一个例子是Mint,而不是常见的Hello World ,毕竟区块链都是和钱有关的。
在百度 move 环境安装之后,我本地是用vscode进行move开发的,我们先建一个project,名字叫“BasicCoin”。
move new BasicCoin
运行后可以看到生成了一个sources目录和Move.toml文件
这里突然想到一个问题,Move语言的命名规范是啥,虽然编译器没有太多限制,但还是遵循约定的比较好,在官方文档的后面找到了一个编码约定
这是对应中文的翻译,但发现有矛盾,我红框标记的,于是看看英文版的
没毛病,看来还是不能太偷懒才行。 简单来说,Move语言的模块命名出函数命名方法外其他和Java比较像,但script的命名又和JS有点像,感觉还是比较奇怪的,有知道的同学麻烦告知。 于是去到在线代码工具的例子工程的命名,再一次验证了我的猜想
扯远了,回到正题,生成好了目录后,还要建一个tests目录,毕竟,在区块链的世界:“不要相信,要验证”。 下面开始写代码: 1)在sources目录下创建一个文件 BasicCoin.move ,代码如下
module 0x01:: BasicCoin {
struct Coin has key {
val: u64,
}
public fun mint(account: signer ,value: u64){
move_to(&account,Coin{val:value})
}
}
2)写一个测试类,在tests目录创建一个BasicCoinTest.move,代码如下
module 0x01::BasicCoinTest {
use 0x01:: BasicCoin;
#[test(account = @0x01)]
fun test_mint_10(account: signer) {
let addr = 0x1::signer::address_of(&account);
BasicCoin::mint(account, 10);
assert!(BasicCoin::balance(addr)== 10, 0);
}
}
成功完成
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!