Move 编写和运行程序

我们通过一个 Move 应用程序的范例,来了解如何编写和运行 Move 程序。

我们实现一个函数 get_num() 功能,并在 VSCode 中运行,输出指定的结果。

创建模块

我们在项目的目录 modules/ 内创建一个新文件 hello_world.move。

// modules/hello_world.move
address 0x1 {
  module HelloWorld {
    public fun get_num(): u8 {
        1
    }
  }
}

如果您想使用自己的地址,而不是0x1,请确保更改此文件中的 0x1 以及下面文件中的地址。

编写脚本

我们在 scripts/ 目录中创建一个脚本 me.move,调用上面的模块:

// scripts/run_hello.move
script {
    use 0x1::HelloWorld;
    use 0x1::Debug;

    fun main() {
        let num = HelloWorld::get_num();
        Debug::print<u8>(&num);
    }
}

运行脚本

我们在保持脚本打开的同时,执行以下步骤:

  • 通过按 ⌘+Shift+P(在 Mac 上)或 Ctrl+Shift+P(在Linux / Windows上)来切换 VSCode 的命令选项板。
  • 键入:>Move: Run Script并在看到正确的选项时,按 Enter 或单击。
  • 现在,你应该会看到执行结果,输出日志中有 “1” 的信息。

目录结构

目录结构应如下所示:

modules/
  hello_world.move
scripts/
  run_hello.move
out/
.mvconfig.json

modules 目录下可以包含任意多的模块,所有这些模块都可以被你的脚本访问到,只要它们都被定义在 .mvconfig.json 所指定的地址下即可。

Move 程序与 Solidity 不同,分为脚本和模块。

脚本可以让开发者在交易中加入更多逻辑,在更加灵活地同时节省时间和资源。

模块允许开发人员更容易扩展区块链的功能,更加灵活地实现自定义智能合约。

下一章:Move语言 数据类型

Move 的基本数据类型包括: 整型 (u8, u64, u128)、布尔型 boolean 和地址 address。Move 不支持字符串和浮点数。整型整型包括 u8、u64 和 u1 ...