
solidity
Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上
孙绿如叶~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
solidity:6.继承
solidity 支持多继承,通过关键字 is 实现,继承的合约可以直接访问父合约的public,internal权限的变量或函数 1.继承与构造函数 有两种方法初始化父类合约,如contract A 、contract B 在继承的时候,父构造函数总是按照继承的顺序调用,跟子合约中父类的构造函数的顺序无关,如contract B、contract C pragma solidity ^0.8.0; contract X { string x; constructor(string m原创 2022-01-14 10:06:59 · 760 阅读 · 0 评论 -
solidity:5.函数修改器
modifier的三种应用场景 权限控制,如example 1 入参校验,如example 2 防止重入,如example 3 pragma 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 · 10076 阅读 · 0 评论 -
solidity:4.函数可见性与修饰符
一. 函数可见性 public - 支持内部或外部调用 private - 仅在当前合约合约调用,且不可被继承 internal- 只支持内部调用 external - 不支持内部调用 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract VisibilityA{ uint public x; function t1() public pure returns(string memory) {原创 2022-01-07 10:46:36 · 11383 阅读 · 0 评论 -
solidity:3.数据存储位置
所有的引用类型都有一个额外注解(storage、memory、calldata),来说明数据的存储位置,上节提到的mapping、struct、array都是引用类型 storage - storage变量永久存储在区块链上 memory - memory变量则是临时的,当函数调用完成时被移除 calldata - 效果同memory,只不过只用在external函数调用中 数据存储位置不同,赋值行为也会不同,下面看几个案例: storage to storage storage状态变量 ->原创 2021-10-27 18:34:52 · 10616 阅读 · 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 · 1166 阅读 · 0 评论 -
solidity:1. 变量和常量
一 . Solidity 支持三种类型的变量: 状态变量 – 变量值永久保存在合约存储空间中的变量。 局部变量 – 变量值仅在函数执行过程中有效的变量,函数退出后,变量无效。 全局变量 – 保存在全局命名空间,用于获取区块链相关信息的特殊变量。 状态变量 contract Test { string public name; function setName(string memory _n) public { name = _n;原创 2021-10-22 14:56:00 · 6137 阅读 · 0 评论