如何声明变量和常量?
在上一节中,您了解了 move 包的架构,并了解了 move中智能合约的结构基础知识。现在,我们将探索 move的更多基础知识。
let
关键字
在 Move on Sui 中,我们使用 let
关键字来声明和初始化变量。声明变量后,您以后可以轻松访问和修改它。使用 let
关键字声明和初始化变量的方法有多种。
#![allow(unused)] fn main() { let <Variable> : <Type> let <Variable> = <Expression> let <Variable> : <Type> = <Expression> }
现在让我们看一些例子。无需担心类型,我们将在几分钟内讨论它们。请记住,在 move 中必须添加分号。
#![allow(unused)] fn main() { let a; let b : u8; let c = true; let d : u8 = 10; }
很简单,不是吗?请记住,我们使用 struct
关键字声明了一个对象,但要初始化该对象,我们需要使用 let
关键字。这是一个例子:
module hello_world::hello_world {
// Importing object module
use sui::object::UID;
use sui::tx_context::{Self, TxContext};
// Declaring HelloWorldObject
public struct HelloWorldObject has key {
id: UID,
}
// Initializing the constructor
fun init(ctx: &mut TxContext) {
// Initializing the HelloWorldObject using let keyword
let object = HelloWorldObject {
id: object::new(ctx),
}
}
}
- 注意:这些示例不可执行,它们是为了帮助您理解不同概念的用法。
您是否注意到我们如何使用 let
关键字来初始化构造函数内部的对象?我们使用 object::new(ctx)
使用 object
模块来初始化对象。
const
关键字
在Move on Sui中, const
关键字用于声明和初始化常量。我们可以在模块级别定义常量,这意味着它们可以在函数外部初始化,并且可以在模块中的任何位置使用。以下是初始化常量的方法。
#![allow(unused)] fn main() { const <Variable> : <Type> = <Expression> }
可以使用任何数据类型定义常量。以下是了解常量的一些重要提示。
- 常量一旦定义就不能更改。
- 无法从其模块中访问它们。
- 它们主要用于定义模块级常量值,该值无法在模块中的任何位置更改和访问。
这是一个例子。
#![allow(unused)] fn main() { module examples::example { const MAX : u64 = 100; public fun is_max(num: u64): bool { num == MAX } } }
小结
变量和常量在 Move on Sui 中发挥着重要作用。它们用于定义对象并存储关键信息。接下来,我们将探索可在 move 中使用的不同数据类型。