move基础语法
key:可以作为键值对全局状态进行访问
store:可以被存储到其他结构体
drop:在作用域结束时可以被丢弃
copy:可复制 key和drop不能同时存在
在代码前加'#[test]'
命令行:'sui move test'
public struct Box <T>{
value: T
}
phantom
泛型
public struct Balance<phantom T> has store{
value: u64,
}
pubic struct Coin<phantom T> has key,store{
id: UID,
balace: Balance<T>,
}
# enum
与match联用
- 实例:识别ip
public enum IPVersion{ IpV4, IpV6, } public fun which_ip_version(ip: &mut IPVersion){ match (ip){ IPVersion::IpV4=>{}, IPVersion::IpV6=>{}, } }
# use语句
`'use std::string::String as MyString'`
引入标准库中的String语句,并取MyString别名
# 基础数据类型
move 无小数无负数
- 定义变量:let <变量名>:<类型> =<变量值> 赋值后无法修改
eg:let a :u8 = 1;
- 另一种写法:let <变量名> =<变量值><类型>
eg:let b = 10u16;
- 定义一个可变变量:let mut <变量名>:<类型> =<变量值>
- 使用 a/b 表示小数 类型相同才能运算
eg:let c= a/(b as u8); ->c=0.1
- 布尔型: let d : boot = true or false;
- 地址型: let addr: address = @0x1;
![屏幕截图 2024-11-16 024537.png](https://img.learnblockchain.cn/attachments/2024/11/wNDSVihX673796dcb4b1f.png)
# 方法的定义
![屏幕截图 2024-11-16 024417.png](https://img.learnblockchain.cn/attachments/2024/11/u14ptguU673796963710a.png)
![屏幕截图 2024-11-16 025631.png](https://img.learnblockchain.cn/attachments/2024/11/dc7REtPy6737996b59b62.png)
# 基础语法
- 循环
![屏幕截图 2024-11-16 034617.png](https://img.learnblockchain.cn/attachments/2024/11/sreqyZPV6737a5100a3d0.png)
- 条件 if , break ,continue
![屏幕截图 2024-11-16 034717.png](https://img.learnblockchain.cn/attachments/2024/11/HQxQZn8o6737a555bd096.png)
![屏幕截图 2024-11-16 035543.png](https://img.learnblockchain.cn/attachments/2024/11/rD9nceLj6737a748b605c.png)
![屏幕截图 2024-11-16 040233.png](https://img.learnblockchain.cn/attachments/2024/11/mlctED9Y6737a8e10a362.png)
- loop 与while等价
![屏幕截图 2024-11-16 040317.png](https://img.learnblockchain.cn/attachments/2024/11/uGLf6NFF6737a92905978.png)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!