Move快速入门
欢迎来到Move语言的世界!Move是Rooch开发的核心编程语言,专为区块链设计,简单、安全又强大。本章将带你快速了解Move的基本概念,并通过一个简单示例让你动手试一试。不用担心复杂细节,我们会从最基础的部分开始!
什么是Move?
Move是一种为区块链智能合约设计的编程语言,由Facebook的Libra项目(现为Diem)开发。它有以下特点:
- 安全性:通过资源管理防止资产重复花费。
- 简单性:语法类似Rust,容易上手。
- 灵活性:支持Rooch等区块链框架的开发。
在Rooch中,Move用来编写智能合约,帮助你创建去中心化应用(DApp)。本章将让你快速体验它的基本用法。
Move的核心概念
1. 模块(Module)
- 模块是Move代码的基本组织单位,类似一个“文件”或“类”。
- 每个模块可以定义数据和函数。
2. 资源(Resource)
- Move用“资源”表示数字资产,比如代币或NFT。
- 资源不能被复制或丢弃,只能被转移,确保安全性。
3. 函数(Function)
- 函数定义了操作逻辑,例如创建资源或转移资产。
- 有“公开函数”和“入口函数”,我们会用到后者。
第一个Move程序
让我们动手写一个简单的计数器程序!这个程序会在Rooch上存储一个数字,每次调用时增加1。
代码示例
注意:以下代码中的中文注释仅为教学查看,实际Move代码不支持中文注释,请在运行时移除这些注释。
module MyCounter::Counter {
use std::signer;
use moveos_std::account;
// 定义一个资源,包含一个计数器值
struct Counter has key {
value: u64
}
// 初始化计数器(入口函数)
public entry fun init_counter(account: &signer) {
// 创建计数器,初始值为0
let counter = Counter { value: 0 };
// 将计数器存储到调用者的账户下
account::move_resource_to(account, counter);
}
// 增加计数器(入口函数)
public entry fun increment(account: &signer) {
// 获取调用者的计数器
let counter = account::borrow_mut_resource<Counter>(signer::address_of(account));
// 值加1
counter.value = counter.value + 1;
}
}