Solidity-17-Contracts
Contracts
Solidity 中的契约类似于面向对象语言中的类。
它们在状态变量中包含持久数据,以及可以修改这些变量的函数。
在不同的合约(实例)上调用函数将执行 EVM 函数调用,从而切换上下文,使得调用合约中的状态变量不可访问。
任何事情发生都需要调用合约及其函数。
以太坊中没有“cron”概念来自动调用特定事件的函数。
创建合同
合约可以通过以太坊交易“从外部”创...
2022-05-22 01:22:02 |
Lang
Solidity-16-Expressions and Control Structures
控制结构
从花括号语言中知道的大多数控制结构都可以在 Solidity 中使用:
有:if、else、while、do、for、break、continue、return,具有 C 或 JavaScript 中已知的常用语义。
Solidity 还支持 try/catch 语句形式的异常处理,但仅适用于外部函数调用和合约创建调用。 可以使用 revert 语句创建错误。
条件句不能省...
2022-05-22 01:22:02 |
Lang
Solidity-15-Units and Globally Available Variables
以太单位 Ether Units
文字数字可以采用 wei、gwei 或 ether 的后缀来指定 Ether 的子面额,其中不带后缀的 Ether 数字被假定为 Wei。
assert(1 wei == 1);
assert(1 gwei == 1e9);
assert(1 ether == 1e18);
小面额后缀的唯一效果是乘以十的幂。
笔记
0.7.0 版中删除了...
2022-05-22 01:22:02 |
Lang
Solidity-14-Conversions between Elementary Types
隐式转换 Implicit Conversions
在某些情况下,编译器会在赋值期间、将参数传递给函数以及应用运算符时自动应用隐式类型转换。
一般来说,如果在语义上有意义并且没有信息丢失,则值类型之间的隐式转换是可能的。
例如,uint8 可转换为 uint16,int128 可转换为 int256,但 int8 不可转换为 uint256,因为 uint256 不能保存 -1 等值。...
2022-05-22 01:22:02 |
Lang
Solidity-13-types Operators
Operators
即使两个操作数的类型不同,也可以应用算术和位运算符。
例如,您可以计算 y = x + z,其中 x 是 uint8,z 的类型为 int32。在这些情况下,将使用以下机制来确定计算运算的类型(这在溢出的情况下很重要)和运算符结果的类型:
如果右操作数的类型可以隐式转换为左操作数的类型,则使用左操作数的类型,
如果左操作数的类型可...
2022-05-22 01:22:02 |
Lang
Solidity-12-types Mapping Types
Mapping Types
映射类型使用语法映射(KeyType => ValueType),映射类型的变量使用语法映射(KeyType => ValueType)变量名声明。
KeyType 可以是任何内置值类型、字节、字符串或任何协定或枚举类型。不允许使用其他用户定义或复杂类型,例如映射、结构或数组类型。 ValueType 可以是任何类型,包括映射、数组和结构。
您可...
2022-05-22 01:22:02 |
Lang
Solidity-11-types Reference Types
Reference Types
引用类型的值可以通过多个不同的名称进行修改。
将此与值类型进行对比,只要使用值类型的变量,您就会获得一个独立的副本。
因此,必须比值类型更仔细地处理引用类型。
目前,引用类型包括结构、数组和映射。
如果使用引用类型,则始终必须显式提供存储类型的数据区域:内存(其生命周期仅限于外部函数调用),存储(存储状态变量的位置,生命周期所在的位置) 仅限于合约的...
2022-05-22 01:22:02 |
Lang
Solidity-10-types Value Types
Types
Solidity 是一种静态类型语言,这意味着需要指定每个变量(状态和本地)的类型。
Solidity 提供了几种基本类型,它们可以组合成复杂类型。
此外,类型可以在包含运算符的表达式中相互交互。
有关各种运算符的快速参考,请参阅运算符的优先顺序。
Solidity 中不存在“未定义”或“空”值的概念,但新声明的变量始终具有取决于其类型的默认值。
要处理任何意外值,您...
2022-05-22 01:22:02 |
Lang