📄️ remix
如果你是第一次接触智能合约开发,可能会有些紧张:我需要配置复杂的开发环境吗?我需要安装很多工具吗?别担心,这正是我们从 Remix 开始的原因。
📄️ solidity_layout
在上一节中,你已经通过 Remix 实践了 Counter 合约的完整流程——从编写、编译、部署到调用。你可能已经成功让计数器加1了,但你是否真正理解了代码的每一行是什么含义呢?
📄️ types
在上一节中,我们学习了合约的基本结构,了解了如何定义状态变量和函数。现在让我们深入探索 Solidity 的类型系统。
📄️ int
在上一节中,我们了解了 Solidity 的类型系统。现在让我们深入学习最常用的类型之一:整型。
📄️ address
在以太坊基础一节中,我们了解了以太坊的两种账户类型。现在让我们学习如何在 Solidity 合约中使用地址类型来表示这些账户。
📄️ contract
在前面的章节中,我们学习了 Solidity 的基本数据类型(整型、布尔、地址等)。实际上,合约本身也是一种数据类型,称为合约类型。理解合约类型对于合约间的交互至关重要。
📄️ bool
布尔类型(Boolean)是编程中最基础的数据类型之一,只有两个值:true(真)和 false(假)。在智能合约中,布尔类型常用于条件判断、权限控制和状态标记。
📄️ enum
枚举(Enum)是一种用户自定义的数据类型,用于表示一组固定的命名常量。枚举让代码更具可读性和可维护性,特别适合表示有限的状态集合。
📄️ array
数组是存储一组相同类型数据的重要数据结构。和大多数编程语言一样,在Solidity中,在一个类型后面加上 [],就构成一个数组类型,表示可以存储一组该类型的值。
📄️ bytes_string
在智能合约开发中,大多数时候,使用多的整型、地址、合约类型,但有时也需要处理文本数据和原始字节数据。Solidity 提供了多种字节相关的类型来满足不同的使用场景。
📄️ struct
在实际编程中,我们经常需要将多个相关的数据组合在一起,形成一个复合类型。例如,描述一个人需要姓名、年龄、地址等多个属性。Solidity 提供了结构体(Struct)来实现这种需求。
📄️ mapping
映射类型是一种键值对的映射关系存储结构, 在功能上和Java的Map、Python的Dict差不多。
📄️ function
函数是 Solidity 合约中最核心的组成部分,它定义了合约的行为和功能。在合约结构章节中,我们已经对函数有了初步了解,本节将深入讲解 Solidity 函数的各个方面。
📄️ receive
我们要把合约的ETH 转出是很容易的,我们在地址一节已经介绍过。
📄️ modifier
修改器作用
📄️ event
这一节我们将介绍事件的使用,为什么需要事件,如何定义与触发事件,以及如何善用事件。
📄️ error
在智能合约开发中,错误处理是保证合约安全和健壮性的重要手段。本章将介绍 Solidity 中的错误处理机制。
📄️ is
理解继承
📄️ interface
在上一节继承中,我们已经理解了一些抽象的概念:把各个合约都拥有的功能,作为统一接口在父合约里提供,让所有的子合约都可以继承。
📄️ library
理解库
📄️ transient
这一节我们将介绍 Solidity 0.8.24 引入的新特性 —— transient 瞬时存储。这是随着以太坊 Cancun 升级而来的一个重要功能,它为智能合约提供了一种新的临时数据存储方式。
