以下是 Solidity 主要版本的特性和发布日期的详细列表:
- Solidity 0.1.x:最初版本,包括基础语法和数据类型(2015年7月)。
- Solidity 0.2.x:添加了函数、事件、结构体等新功能,并引入了更严格的编译器警告(2016年4月)。
- Solidity 0.3.x:增加了库、映射(mapping)等功能,并提高了安全性和代码优化程度(2016年12月)。
- Solidity 0.4.x:引入可视性修饰符、抽象合约等概念,并增强了 EVM 指令支持(2017年12月)。
- Solidity 0.5.x:添加状态变量初始化、require 函数、事件参数索引等特性,并删除某些过时功能。此外,还改进了 ABI 编码规范以及调用深度限制机制 (2018 年11月)
- Solidity 0.6.x: 引入 ABIEncoderV2 编码规范, 允许在 ABI 中使用 struct 和 array 类型作为输入输出参数; 改善 Calldata gas 计算方式;废除 var 关键字;新增 try-catch 异常处理机制(2020 年1月)
- Solidity 0.7.x: 引入 ABIEncoderV2 编码规范, 允许在 ABI 中使用 struct 和 array 类型作为输入输出参数; 改善 Calldata gas 计算方式; 新增可选的 error 类型;废除了 fallback 函数,使用 receive() 和 fallback() 来代替 (2020 年8月)
请注意,这些仅是主要版本发布时引入的一些特性。Solidity 还有很多小更新和修补程序,以改进性能、纠正错误或添加新功能。
在选择 Solidity 版本并编写智能合约代码之前,请务必查看官方文档,并进行充分测试,以确保您的代码与所选版本兼容。