-
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
-
Solidity-09-Structure of a Contract
Structure of a Contract
Solidity 中的契约类似于面向对象语言中的类。
每个合约都可以包含状态变量、函数、函数修饰符、事件、错误、结构类型和枚举类型的声明。
此外,合约可以继承自其他合约。
还有一些特殊类型的合约,称为库和接口。
关于合同的部分包含比本部分更多的详细信息,用于提供快速概述。
状态变量
状态变量是其值永久存储在合约存储中的变量。
/...
2022-05-22 01:22:02 |
Lang
-
Solidity-08-Layout of a Solidity Source File
Solidity 源文件的布局
源文件可以包含任意数量的合约定义、import、pragma 和 using for 指令和结构、枚举、函数、错误和常量变量定义。
SPDX 许可证标识符
如果智能合约的源代码可用,则可以更好地建立对智能合约的信任。由于提供源代码总是涉及版权方面的法律问题,Solidity 编译器鼓励使用机器可读的 SPDX 许可证标识符。
每个源文件都应以说明其许可...
2022-05-22 01:22:02 |
Lang
-
Solidity-07-Solidity by Example
投票
以下合约相当复杂,但展示了 Solidity 的许多功能。
它实现了一个投票合约。
当然,电子投票的主要问题是如何将投票权分配给正确的人以及如何防止操纵。
我们不会在这里解决所有问题,但至少我们将展示如何进行委托投票,以便同时自动计算投票并且完全透明。
这个想法是为每张选票创建一份合同,为每个选项提供一个短名称。
然后,担任主席的合约的创建者将分别授予每个地址的投票权。
...
2022-05-22 01:22:02 |
Lang
-
Solidity-06-Installing the Solidity Compiler
版本控制
Solidity 版本遵循语义版本控制。
此外,主版本 0(即 0.x.y)的补丁级别版本将不包含重大更改。
这意味着使用版本 0.x.y 编译的代码可以预期使用 0.x.z 编译,其中 z > y。
除了发布之外,我们还提供夜间开发版本,目的是让开发人员更容易尝试即将推出的功能并提供早期反馈。
但是请注意,虽然夜间构建通常非常稳定,但它们包含来自开发分支的前沿代码...
2022-05-22 01:22:02 |
Lang
-
Solidity-05-The Ethereum Virtual Machine
概述
以太坊虚拟机或 EVM 是以太坊中智能合约的运行时环境。
它不仅是沙盒,而且实际上是完全隔离的,这意味着在 EVM 内运行的代码无法访问网络、文件系统或其他进程。
智能合约甚至对其他智能合约的访问权限有限。
账户 Accounts
以太坊中有两种账户共享相同的地址空间:由公钥-私钥对(即人类)控制的外部账户和由与账户一起存储的代码控制的合约账户。
外部账户的地址由公钥确定,...
2022-05-22 01:22:02 |
Lang
-
Solidity-04-Blockchain Basics
区块链基础
区块链作为一个概念对于程序员来说并不难理解。
原因是大多数复杂性(挖掘、散列、椭圆曲线密码学、点对点网络等)只是为了为平台提供一组特定的功能和承诺。
一旦你接受了这些给定的功能,你就不必担心底层技术——或者你是否必须知道亚马逊的 AWS 在内部是如何工作的才能使用它?
Transactions 交易
区块链是一个全球共享的交易数据库。
这意味着每个人都可以通过参与网络...
2022-05-22 01:22:02 |
Lang