![](https://img-blog.csdnimg.cn/8ee66502369d461bb90eef81c003efe4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
solidity
Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上
孙绿如叶~
这个作者很懒,什么都没留下…
展开
-
solidity:6.继承
solidity 支持多继承,通过关键字 is 实现,继承的合约可以直接访问父合约的public,internal权限的变量或函数1.继承与构造函数有两种方法初始化父类合约,如contract A 、contract B在继承的时候,父构造函数总是按照继承的顺序调用,跟子合约中父类的构造函数的顺序无关,如contract B、contract Cpragma solidity ^0.8.0;contract X { string x; constructor(string m原创 2022-01-14 10:06:59 · 553 阅读 · 0 评论 -
solidity:5.函数修改器
modifier的三种应用场景权限控制,如example 1入参校验,如example 2防止重入,如example 3pragma solidity ^0.8.0;contract FunctionModifier{ address public owner; bool public locked; int public x; constructor(){ owner = msg.sender; locked = fals原创 2022-01-11 16:11:05 · 10014 阅读 · 0 评论 -
solidity:4.函数可见性与修饰符
一. 函数可见性public - 支持内部或外部调用private - 仅在当前合约合约调用,且不可被继承internal- 只支持内部调用external - 不支持内部调用// SPDX-License-Identifier: GPL-3.0pragma solidity ^0.8.0;contract VisibilityA{ uint public x; function t1() public pure returns(string memory) {原创 2022-01-07 10:46:36 · 11232 阅读 · 0 评论 -
solidity:3.数据存储位置
所有的引用类型都有一个额外注解(storage、memory、calldata),来说明数据的存储位置,上节提到的mapping、struct、array都是引用类型storage - storage变量永久存储在区块链上memory - memory变量则是临时的,当函数调用完成时被移除calldata - 效果同memory,只不过只用在external函数调用中数据存储位置不同,赋值行为也会不同,下面看几个案例:storage to storagestorage状态变量 ->原创 2021-10-27 18:34:52 · 10535 阅读 · 0 评论 -
solidity:2.mapping、array和struct
一 . mapping 映射(mapping)在声明时的形式为 mapping(KeyType => ValueType),可以根据KeyType 得到ValueType KeyType 除数组类型(除bytes和 string)是不可以作为 KeyType,其它类型均可以作为KeyType ValueType可以是包括映射类型在内的任何类型contract mapTest1 { mapping(address => uint) myMap;原创 2021-10-26 17:48:37 · 1038 阅读 · 0 评论 -
solidity:1. 变量和常量
一 . Solidity 支持三种类型的变量:状态变量 – 变量值永久保存在合约存储空间中的变量。局部变量 – 变量值仅在函数执行过程中有效的变量,函数退出后,变量无效。全局变量 – 保存在全局命名空间,用于获取区块链相关信息的特殊变量。状态变量contract Test { string public name; function setName(string memory _n) public { name = _n;原创 2021-10-22 14:56:00 · 6027 阅读 · 0 评论