在solidity语言中引用类型修饰符(引用类型为存储空间不固定的数值类型)memory、calldata与storage,它们只能修饰引用类型变量,比如字符串、数组、字节等...memory适用于方法传参、返参或在方法体内使用,使用完就会清除掉,释放内存calldata仅适用于方法传参,修饰该变量的值不能修改storage仅适用于方法体内,而且它的指针必须指向链上数据。使用完,链上数据将保存最新状态 常量修饰符constant编译前已经确定,编译后不能再修改常量的值constant它不是状态变量,所以它不储存在插槽(Slot)里面,获取该常量的方法修饰必须是Pure,而不是Viewimmut
Viewpure修饰符:使用view与pure不需要gweiview:不能修改链上数据只能访问pure:不能访问链上数据,被修饰的方法里的变量只能在方法内使用contract ViewPureExample{ uint public age; function increaseAge() public{ age++;} function GetViewAge() public view returns(uint){ //view修饰 //age++;//不可修改变量 return age;} function GetPureAge(uint age) public
Viewpure修饰符:使用view与pure不需要gweiview:不能修改链上数据只能访问pure:不能访问链上数据,被修饰的方法里的变量只能在方法内使用contract ViewPureExample{ uint public age; function increaseAge() public{ age++;} function GetViewAge() public view returns(uint){ //view修饰 //age++;//不可修改变量 return age;} function GetPureAge(uint age) public
探究系列已发布文章列表,有兴趣的同学可以翻阅一下:第一篇|iOS属性@property详细探究第二篇|iOS深入理解Block使用及原理第三篇|iOS类别Category和扩展Extension及关联对象详解第四篇|iOS常用锁NSLock,@synchronized等的底层实现详解第五篇|iOS全面理解Nullability-------正文开始-------引言日常开发过程中,我们经常会碰到空值、空指针、空对象、空的占位对象等。在一些情况下,如果判断不好或者处理方式不对,可能会引起程序运行异常,有些特殊情况甚至会导致Crash,因此,熟练了解掌握它们之间的区别,将有助于我们写出更高质量的代
探究系列已发布文章列表,有兴趣的同学可以翻阅一下:第一篇|iOS属性@property详细探究第二篇|iOS深入理解Block使用及原理第三篇|iOS类别Category和扩展Extension及关联对象详解第四篇|iOS常用锁NSLock,@synchronized等的底层实现详解第五篇|iOS全面理解Nullability-------正文开始-------引言日常开发过程中,我们经常会碰到空值、空指针、空对象、空的占位对象等。在一些情况下,如果判断不好或者处理方式不对,可能会引起程序运行异常,有些特殊情况甚至会导致Crash,因此,熟练了解掌握它们之间的区别,将有助于我们写出更高质量的代