Move学习
介绍
Move特点与优势
Move是由Facebook公司开发设计的智能合约语言。Move它提出的一套完整的面向数字资产的编程体系。与现有的区块链编程语言相比,Move着重强化了数字资产的地位。使用Move语言,开发者能够更灵活、安全地在链上定义和管理数字资产。
Move 通过省略某些特征——动态调度和一般指针——来限制语言的表达,而对语言灵活性的大规模限制可能会引发重入错误。
Move 支持“资源类型”(受线性类型系统启发)。模块可以定义特定类型的数据为“资源”,这意味着模块外部的任何代码都不不能查看该类型值的内容:它们只能在变量之间移动并传递给函数,这虽然能够帮助 Move 的开发?人员确保资源得到保存,但它们还不足以确保功能的正确性——Move 设计者也同意这一点,并认为最终他们将需要使用形式化验证。
关于执行的问题:Move 的编译器会生成类型化的字节码,同时,有一个可以检查输出类型是否正确的“字节码验证器”。需要说明的是,这种“验证器”与形式化验证无关 ,它仅是对输出类型进行一次完整性的检查。当然, 仍然可能会存在它创建类型正确但内容错误的编译器 bug。
综上而言,Move 语言额外添加了一层规范,可以避免很多 Solidity 的漏洞,然而这些安全性和正确性的保障仍旧是单独存在的壁垒加持。
----摘自官网介绍
加减乘除 Demo
- 函数
script {
use 0x01::Wmhxx_Math;
use 0x1::Debug;
fun main(){
let a:u8 = 3;
let b:u8 = 2;
Debug::print(&Wmhxx_Math::add(a,b));
Debug::print(&Wmhxx_Math::subtract(a,b));
Debug::print(&Wmhxx_Math::multiply(a,b));
Debug::print(&Wmhxx_Math::divide(a,b));
Debug::print(&Wmhxx_Math::mod(a,b));
}
}
- 资源
module 0x01::Wmhxx_Math {
public fun add(a: u8,b: u8): u8 {
a * b
}
public fun subtract(a: u8,b: u8): u8 {
a - b
}
public fun multiply(a: u8,b: u8): u8 {
a * b
}
public fun divide(a: u8,b: u8): u8 {
a / b
}
public fun mod(a: u8, b: u8): u8{
a % b
}
}
NumberUtil
自己封装的工具类
module 0x11::NumberUtil{
use 0x1::Debug;
public fun validation_even_number(a:u8):bool{
if(a % 2 == 0 ){
true
}else{
false
}
}
public fun max_number(a:u8,b:u8):u8{
if(a > b ){
return a
};
return b
}
public fun mix_number(a:u8,b:u8):u8{
if(a > b ){
return b
};
return a
}
public fun get_number_list(a:u128): u128{
let index = 0;
while(index < a){
index = index + 1;
Debug::print(&index);
};
index
}
}
函数
script{
use 0x11::NumberUtil;
use 0x1::Debug;
fun main(){
let a :u8 = 89;
let a1 = NumberUtil::validation_even_number(a);
Debug::print(&a1);
let b :u8 = 90;
let b1 = NumberUtil::validation_even_number(b);
Debug::print(&b1);
let c = NumberUtil::max_number(a,b);
Debug::print(&c);
let c = NumberUtil::mix_number(a,b);
Debug::print(&c);
let d:u128 = 10;
//2022-10-23
let d1 = NumberUtil::get_number_list(d);
Debug::print(&d1);
//if(d1 == 10) abort 1024;
//assert!(d1 != 10 , 1024);
}
}
本文链接:
/archives/move-xue-xi
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
烦恼的夏洛克!
喜欢就支持一下吧