Functions
Move 函数和 Solidity 函数的核心思想接近,但默认可见性和交易入口的定义方式不同。
fun默认是私有的。public entry fun对应“可通过交易调用”的外部方法。#[view] public fun对应“无需交易即可调用”的只读方法。
Entry function
Section titled “Entry function”function addMessage(string memory messageText_) external { // ...}public entry fun add_message(sender: &signer, message: String) { // ...}public entry表示该函数可通过交易调用。&signer提供已认证的发送者,代替msg.sender。- 按当前 Move 写法,这种模式不需要再写
acquires注解。
View function
Section titled “View function”function getMessages() external view returns (Message[] memory) { // ...}#[view]public fun get_messages(): vector<Message> { // ...}一个很容易踩的差异
Section titled “一个很容易踩的差异”在 Solidity 中,你常常从 public 开始,只有需要时才收紧。在 Move 中,更好的习惯是从私有 fun 开始,只暴露模块真正需要暴露的函数。