Solidity入门

0x00 资源导航

0x00.Solidity资源导航,入门相关资源持续收集整理中,方便学习和回顾。目前主要包含官方说明以及智能合约示例。

官方说明文档(当前最新版本0.8.17)

https://docs.soliditylang.org/zh/latest/

速查表

https://docs.soliditylang.org/zh/latest/cheatsheet.html

语法

https://docs.soliditylang.org/zh/latest/grammar.html

官方合约示例

https://docs.soliditylang.org/zh/latest/solidity-by-example.html#

Solidity官网

https://soliditylang.org/

0x01 学习记录

0x00.Solidity学习记录,主要用于学习过程中关键点的记录,以及和其他已经掌握语言的差异记录。

版本管理

pragma solidity ^0.8.0;

solidity指定版本号的语义遵循NPM版本语义:^, <, >, <=, >=, =

数据类型

https://docs.soliditylang.org/zh/latest/types.html

浮点数

浮点型(在许多语言中的 floatdouble ,更准确地说是 IEEE 754 类型)和定长浮点型之间最大的不同点是, 在前者中整数部分和小数部分(小数点后的部分)需要的位数是灵活可变的,而后者中这两部分的长度受到严格的规定。 一般来说,在浮点型中,几乎整个空间都用来表示数字,但只有少数的位来表示小数点的位置。

fixed / ufixed:表示各种大小的有符号和无符号的定长浮点型。 在关键字 ufixedMxNfixedMxN 中, M 表示该类型占用的位数, N 表示可用的小数位数。 M 必须能整除 8,即 8 到 256 位。 N 则可以是从 0 到 80 之间的任意数。 ufixedfixed 分别是 ufixed128x18fixed128x18 的别名。

地址类型

address: 保存一个20字节的值(一个以太坊地址的大小)。 address payable: 与 address 类型相同,但有额外的方法 transfer 和 send。

变量

https://docs.soliditylang.org/zh/latest/units-and-global-variables.html

状态变量

存储在区块链上,对状态变量的操作需要消耗gas。

局部变量

函数运行中有效的变量,函数退出后变量释放。

全局变量

区块链上提供的变量,可以在任意智能合约中使用。

TODO…