Open phymo opened 2 years ago
与面向对象的类差不多,包括 state 和 function
- 构造函数
- 构造函数 constructor:用于初始化合约,可选函数, 只允许一个构造函数,不支持重载; 部署合约时自动调用构造函数创建合约,不能限制gas
- 不支持嵌套创建合约
- 合约内可以用new 创建其他合约
- 无参构造,有参构造
- 继承
- 四种访问修饰符的继承
- 关键字 is
- 本质,代码拷贝
- 派生合约可以访问父合约所有非私有成员,但不能使用this
- 继承列表式, 2. 修改器风格式
- 重写
- 状态变量覆盖 错误
- 状态变量不能重写
- 可以允许重写函数,但不能重写函数返回值
- super 可以访问父类的函数,
- 多态
- 多继承
- modifier 继承
- 重载:不同参数个数
- 抽象contract :virtual override
- 接口 interface: ABI
- library: delegatecall, import实际上是copy代码, using for 绑定
mapping(key => value)
, key可以是字符串 整型 等基本数据类型,包括address; value 没有类型限制
Solidity
语言特性
EVM
沙箱封装起来,完全隔离,运行在EVM的代码不能接触网络,进程,文件系统等, 仅合约之间有限交互
Remix
安装 本地remix
remix-ide 挂载本地源码目录
connect to localhost
remixd -s c:\solworkspace --remix-ide http:******
1st HelloWorld.sol program 及运行
pragma solidity >=0.7.0 <0.9.0;
/**
@dev Store & retrieve value in a variable */ contract Storage {
uint256 number;
/**
/**
pragma solidity >=0.7.0 <0.9.0;
contract HelloWorld { string str = "str";
}