Modules and Initialization
在 Move 里,最接近 Solidity 合约这一代码单元的是 module。
Solidity contract
Section titled “Solidity contract”pragma solidity ^0.8.20;
contract Billboard { constructor(address owner_) { // initialization }}Move module
Section titled “Move module”module billboard_address::billboard { fun init_module(owner: &signer) { // initialization }}- Solidity 用
contract关键字声明合约;Move 用address::module_name声明模块。 - Solidity 的 constructor 在部署时执行一次;Move 的初始化逻辑通常写在
init_module。 - 包元数据和 named address 放在
Move.toml,而不是直接写在模块里。
[package]name = "billboard"version = "1.0.0"
[addresses]billboard_address = "_"生产部署时,也应考虑 把代码作为 object 部署 以及 package upgrade policy。迁移时最关键的是:初始化依然需要显式编写,只是打包方式和地址模型不同了。