做网站的时候怎么照片路径,海南网站设计,开网店需要什么手续和流程,深圳网络广告推广公司目录
引言
一、变量的定义
二、整型
如何在Move中表示小数和负数#xff1f;
三、运算符
as运算符
布尔型
地址类型
四、什么是包#xff1f;
五、什么是模块#xff1f;
六、如何定义方法#xff1f;
方法访问权限控制
init方法
总结 引言 Move 是一种专为区…目录
引言
一、变量的定义
二、整型
如何在Move中表示小数和负数
三、运算符
as运算符
布尔型
地址类型
四、什么是包
五、什么是模块
六、如何定义方法
方法访问权限控制
init方法
总结 引言 Move 是一种专为区块链智能合约开发设计的强类型编程语言旨在提高安全性和灵活性。它的类型系统和模块化设计使得开发者能够以清晰、简洁的方式定义合约逻辑。在 Move 中变量的定义严格遵循类型声明的要求确保了代码在编译阶段就能捕获类型错误减少了运行时错误的可能性。此外Move 提供了多种数据类型包括整型、布尔型和地址类型使得开发者能够处理复杂的合约需求。理解这些基本概念是学习 Move 的基础对于后续编写和优化智能合约至关重要。
可在b站搜索这位up主~ 一、变量的定义 let a : u32 10u32; let 变量名称: 类型 变量值
变量名称只能是a-z和A-Z以及英文下划线_
Move是一门强类型的编程语言没有隐式的类型转换定义变量也需要申明类型或标注类型。 二、整型
Move只有6个无符号整数Move没有负数和小数 如何在Move中表示小数和负数
小数的定义是 a / b所以只要我选择放大整数的倍数可以用来表示小数。
标准库中:https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/packages/move-stdlib/sources/fixed_point32.move 负数 我们可以用前端展现和约定的方式来表示 比如 U8 类型 的 1-127 表示负数 128-255 表示正数 三、运算符 as运算符
只有类型相同的才能做基本运算as 是 Move的 整数 类型转换运算符Move 不支持类型的隐式转换语法(1u8 as u64)
fun init(ctx:mut TxContext}{ let a : u16 1000; let b : u64 999; let c : u321000;
let d b (c as u64);
let f a (c as u16);
} 布尔型 地址类型
address 在Move中是一个特殊的类型用来在合约里面表示一个钱包地址。
字节的长度是32字节
let address1: address 0x1;
let address2: address 0x42;
let address3: address 0xDEADBEEF;
let address4: address 0x000000000000000000000000000000000000000000000000000000000000000A let address_2 primitive; 四、什么是包
包是同一个合约地址包含的全部代码的集合由很多模块组成。 五、什么是模块
代码模块是代码划分权限和代码的组织方式。
moudle mod :: a { use sui :: tx_context :: TexContext; fun init (ctx: $mut TxContext) { }
} moudle关键字mod是地址名称a是模块的名字然后用双冒号分隔开来。然后一个花括号吧里面会包含方法、一些引用、常量和结构体等等之类的。 六、如何定义方法
fun identifier [type_parameters: constraint],*([identifier:type])*):
return_typeacquires [identifier],*function_body fun a () { } pubulic fun b () { } pubilc (package) fun c () { //以前叫friend 现在叫package } public entry fun d () { } public fun f(a: u32,b: u32) : bool { a b } 方法访问权限控制 init方法
1、只能是私有的
2、会在发布合约的时候自动调用一次
3、只有两种形式
fun init ( ctx : $mut TxContext) { }fun init ( witness : Struct, ctx : $mut TxContext) { }
总结 通过本次学习我们深入探讨了 Move 编程语言的基本特性和语法结构包括变量的定义、数据类型的使用、模块和方法的定义等。Move 的设计理念强调类型安全和代码组织的清晰性使得区块链开发变得更加高效和安全。掌握这些知识不仅有助于我们更好地理解智能合约的实现机制也为我们在实际开发中运用 Move 提供了坚实的基础。在未来的学习和实践中我们可以继续探索 Move 的更多功能及其在区块链生态系统中的应用。