WTF Solidity 极简入门:第 1 讲 HolaWeb3 —— 用三行代码打开 Solidity 世界的大门
【免费下载链接】WTF-SolidityWTF Solidity 极简入门教程,供小白们使用。Now supports English! 官网: https://wtf.academy项目地址: https://gitcode.com/GitHub_Trending/wt/WTF-Solidity
本节是 WTF-Solidity 教程系列的开篇(西班牙语原文档)。你将用最少的代码(1 行注释 + 3 行代码)在浏览器端的RemixIDE 中完成第一个智能合约的编写、编译与部署,理解 Solidity 源文件的三大基本结构(许可证注释、版本指令、合约体),并亲眼看懂public状态变量在链上是如何被读取的。学完本节,你就拥有了在以太坊虚拟机(EVM)上"跑通第一个合约"的完整能力,为后续每一讲打牢地基。
Solidity 是什么,为什么值得学
Solidity是用于编写以太坊虚拟机(EVM)智能合约的编程语言。它几乎是与区块链应用开发绑定最紧密的技能:链上项目大多是开源的,如果你能读懂合约代码,就能在参与之前识别出可能"亏钱"的风险项目,也能在求职时拥有直接可用的硬实力。
原文档用两个特点概括它的价值:
- 面向对象:掌握
Solidity后,你可以通过分析、参与链上项目发挥技能价值; - 进阶(高级)语言:能写 Solidity 合约,意味着你已具备以太坊"一等公民"级别的链上开发能力。
本仓库正是围绕这门语言设计的极简入门教程:每一讲对应一个主题目录,从本讲的"三行代码"起步,逐步覆盖变量类型、函数、存储、继承、代理、ERC 标准与安全漏洞等完整体系。
开发工具:浏览器里的 Remix IDE
教程全程使用Remix作为开发环境。Remix是以太坊官方推荐的智能合约集成开发环境(IDE),它的最大优势是零安装:直接在浏览器中完成编码、编译、部署与调试,非常适合新手入门。
进入Remix后,左侧垂直菜单包含四个核心功能区(原文档英文版对四个按钮的描述更完整,此处一并整理):
- 文件浏览器(FILE EXPLORER):编写和存放代码文件;
- 搜索文件(SEARCH IN FILES):在项目中查找与替换文本;
- Solidity 编译器(SOLIDITY COMPILER):编译(运行)代码;
- 部署与运行交易(DEPLOY & RUN TRANSACTIONS):把合约部署到链上。
点击文件面板中的Create New File(创建新文件)按钮,即可新建一个空白的 Solidity 合约文件,例如命名HolaWeb3.sol。下图是 Remix 的文件浏览器界面:
第一个 Solidity 程序:结构逐行拆解
本讲的示例程序非常精简,全文件只有1 行注释 + 3 行代码。仓库中对应源码见 HolaWeb3.sol(西班牙语版)与 HelloWeb3.sol(中文版),两者结构完全一致:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.34; contract HolaWeb3{ string public _string = "Hola Web3!"; }提示:仓库中的实际源码将版本指令更新为
^0.8.34,与根目录 foundry.toml 中solc = "0.8.34"保持一致;原文档示例使用^0.8.21,语义完全相同(见下文版本讲解)。
下面逐行拆解,理解 Solidity 源文件的基础结构:
1. 许可证注释(License Identifier)
// SPDX-License-Identifier: MIT- 第 1 行是注释,声明代码使用的软件许可证,这里使用
MIT许可。 - Solidity 注释以
//开头,其后内容不会被程序执行。 - 如果不写许可证声明,合约依然可以成功编译,但编译器会给出
warning警告。
2. 版本指令(Version Pragma)
pragma solidity ^0.8.34;- 第 2 行声明源文件可用的 Solidity 编译器版本范围,因为不同版本之间的语法存在差异。
^0.8.34的含义是:不允许低于 v0.8.34 的编译器编译,同时不允许大于等于 v0.9.0 的编译器编译(上限条件由^脱字符号提供)。- 语句以分号
;结尾——这是 Solidity 语法的一部分,缺少分号会导致编译错误。
3. 合约体(Contract Body)
contract HolaWeb3{ string public _string = "Hola Web3!"; }- 第 3 行通过
contract关键字创建合约,并声明合约名为HolaWeb3(注意:合约名与文件名可以不同,但实践中常保持一致以便管理)。 - 第 4 行是合约内容:声明了一个类型为
string(字符串)的状态变量_string,并赋予初始值"Hola Web3!"。 - 关键字
public非常关键:它让 Solidity 编译器自动为_string生成一个公开的读取函数(getter),这也是部署后能直接点击变量查看其值的原因。关于各类变量类型(值类型、引用类型等)将在后续章节详细介绍。
编译与部署:在 Remix 虚拟机上运行合约
编译代码
在 Remix 的代码编辑页面按下Ctrl + S即可触发编译,也可以点击编译器面板中的Compile按钮。编译通过后,左侧菜单栏会显示绿色对勾等成功标识。
进入部署页
编译完成后,点击左侧菜单的部署与运行交易(Deploy & Run Transactions)按钮,进入部署页面。部署页面的关键配置如下:
- 环境(Environment):默认是
Remix VM(此前称为 JavaScript 虚拟机 / JS VM)。它会在浏览器本地模拟一条以太坊链,相当于在浏览器里跑一条测试网,无需连接真实网络,也不消耗真实资产。 - 测试账户:Remix 会自动分配若干个测试账户,每个账户预置100 ETH(测试代币),可以放心随意使用。
- 合约选择:在
Contract下拉框中选择HolaWeb3。 - 部署:点击黄色的
Deploy按钮,合约随即被部署到 Remix 虚拟机上。
验证结果
部署成功后,页面下方会出现名为HolaWeb3的合约条目。点击其中的_string变量(即编译器自动生成的 getter),即可读取并打印它的值:"Hola Web3!"。
至此,你已经走完了"编写 → 编译 → 部署 → 链上读取状态"的完整闭环,这正是所有 Solidity 开发的基础工作流。
深入一点:从仓库源码看版本与工程化实践
作为教程配套仓库,WTF-Solidity 为每个章节提供了可直接运行的 Solidity 源文件,本讲对应文件为 HolaWeb3.sol 与 HelloWeb3.sol。值得注意的两个工程细节:
版本指令与实际编译环境对齐:仓库源码将版本号更新为
^0.8.34,与根目录 foundry.toml 中统一声明的solc = "0.8.34"编译版本一致。这意味着即使脱离 Remix、改用 Foundry 等本地工具链,同样能以一致的编译器版本复现编译结果——^语义保证了大版本约束下小版本兼容的确定性。从浏览器 IDE 到本地工具链的可迁移性:Remix 适合零成本起步,而本仓库还提供了 scripts/run-forge-tests.sh 等脚本,用于在仓库根目录对全部章节合约批量执行
forge test。对刚完成本讲练习的读者来说,后续章节可以平滑地从"浏览器点按钮"过渡到"命令行编译测试",两条路径编译的都是同一份 Solidity 源码。
总结
本节你完成了三件事:认识了Solidity这门 EVM 智能合约语言及其价值;掌握了RemixIDE 的核心面板(文件、搜索、编译、部署);写下了人生第一个 Solidity 合约HolaWeb3并成功部署、读取。接下来,教程将按编号逐步深入——下一讲开始进入变量类型(Value Types),去系统认识 Solidity 中不同类型变量的声明与行为。
【免费下载链接】WTF-SolidityWTF Solidity 极简入门教程,供小白们使用。Now supports English! 官网: https://wtf.academy项目地址: https://gitcode.com/GitHub_Trending/wt/WTF-Solidity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考