备注
- 本文绝大部分是直接从 搭建僵尸工厂 的一个以闯关学习Solidity相关知识的(国外?)网站抄写下来的,该网站自带sodility编辑器,而且每章节都必须按照实战演习的内容完成测试才能进入到下一章节,非常适合用一定编程基础的小伙伴自学solidity编程
- 我整理这篇文章,一是分享觉得好的solidity学习资源给大伙;二是重新学习下solidity;三是整理上述网站的学习内容,让我自己找起来方便;
- 上述网站是开源的,如本篇内容有侵权,可联系本博客删除;
- 好记性不如烂笔头,抄一遍等于过一遍脑子,比扫一遍或看一遍的效果好的多得多;
- 最后demo的步骤序号与标题序号一致,如果哪个步骤忘了具体含义,可查看对应序号的标题内容;
1. 合约
- 所有Solidity源码必须冠以version pragrma 标明Solidity编译器的版本,以避免将来新的编译器可能破坏你的代码:
- Solidity中合约的含义就是一组代码(它的函数)和数据(它的状态) ,它们位于以太坊区块链的一个特定地址上。
2. 状态变量和整数
- 状态变量 是永久地保存在合约中;
无符号整数:uint
- uint 无符号整数类型,指其值不能是负数,对于有符号的整数存在名为int的数据类型;
注:Solidity中,uint实际上是uint256代名词,一个256位的无符号整数;你也可以定义位数少的uints—uint8,uint16,uint32等···
3. 数学运算
- 加法: x + y
- 减法: x - y
- 乘法: x * y
- 除法: x / y
- 取模/求余: x % y
- 乘方: x ** y (例子:5 ** 2=25)
4. 结构体
- 有时你需要更复杂的数据类型,Solidity提供了结构体;结构体允许你生成一个更复杂的数据类型,它有多个属性
stru