Solidity 语法练习

以太坊的学习,总是要接触智能合约的编写,目前Solidity语言最为主流。

这门语言和 JavaScript以及Python很像,又保留了强类型语言所特有的编译特性,虽不是一门有悠久历史的语言,却也匠心独具。

严格而言,任何有能力编译为以太坊虚拟机能运行的字节码的语言都可以选用作为编写智能合约的源语言,所以语言的选择也并非固定在 Solidity 不可。当下也有很多的编译器将例如 Go 语言的代码编译为以太坊虚拟机字节码。

每打开一本新的编程书,伴随的总是对一门语言的学习。笔者过去每次都是先摸索着自学,再深入到实用框架搭建项目,最后在工作中升华知识点。在经历这些知识学习时,总对书目的结构不甚满意,往往是学习了一串枯燥的语法以后不操练,整本书看下来,记住的知识点却寥寥。

本章将改变这个现状,带领大家对于 Solidity 语言进行“互动”学习。在学习的过程欢迎读者在本书的“小练习”的模块上涂涂画画增强理解。每个知识点都会滚动复习前面的一些小知识点,帮助读者深入记忆这些繁琐的细节。

本章除了讲述最前沿的Solidity语法,还穿插有实践中常见的安全实践举例。

  • 基础概念
    • 没有浮点数运算
    • 合约基础
    • 变量类型
    • 运算符号
    • 结构体 Struct
    • 数组array
    • 函数申明
    • 类型转换与内置函数
    • 合约与事件
  • 语法进阶
    • 数据结构:map
    • 环境变量:msg.sender
    • require还是assert?
    • 继承和引入
    • 省钱妙招:内存变量
    • 接口与合约调用
    • 多返回值
  • 高级语法和概念
    • Contract 构造函数
    • Ownable控制
    • Pausable控制
    • 省钱妙招:struct 结构体
    • 时间单位表达
    • 带参数的函数修饰符
    • for 循环
    • 合约收款:payable修饰符
    • 支付费用:transfer方法
  • 小结

本节将重点介绍 Solidity 语法的基础,从最基本的合约结构和函数变量讲起。知识点都不复杂,读者只要带着纸笔填写练习就好,为后面的章节学习打下良好的基础。没有浮点数运算以太坊虚拟机给程序员的第一个惊(jing ...