WTF Solidity极简入门:1. HelloWeb3 (三行代码)

我最近在重新学solidity,巩固一下细节,也写一个“WTF Solidity极简入门”,供小白们使用(编程大佬可以另找教程),每周更新1-3讲。

推特@WTFAcademy_@0xAA_Science

WTF Academy社群: 官网 wtf.academy | discord | 微信群申请

所有代码和教程开源在github: github.com/AmazingAng/WTFSolidity


Solidity简述

Solidity是以太坊虚拟机(EVM)智能合约的语言。同时,我也觉得solidity是玩链上项目必备的技能:区块链项目大部分是开源的,如果你能读懂代码,能帮你规避很多归钱项目。

Solidity具有两个特点:

  1. 基于对象:学会之后,能帮你挣钱找对象。

  2. 高级:不会solidity,在币圈显得很low。

开发工具:remix

本教程中,我会用remix来跑solidity合约。remix是以太坊官方推荐的智能合约开发IDE,适合新手,可以在浏览器中快速部署测试智能合约,你不需要在本地安装任何程序。

网址:remix.ethereum.org

进入remix,我们可以看到最左边的菜单有三个按钮,分别对应文件(写代码的地方),编译(跑代码),部署(部署到链上)。我们点新建(Create New File)按钮,就可以创建一个空白的solidity合约。

remix面板
remix面板

第一个Solidity程序

很简单,只有1行注释+3行代码:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract HelloWeb3{
    string public _string = "Hello Web3!";}

我们拆开分析,学习solidity代码源文件的结构:

  1. 第1行是注释,会写一下这个代码所用的软件许可(license),这里用的是MIT license。如果不写许可,编译时会警告(warning),但程序可以运行。solidity的注释由“//”开头,后面跟注释的内容(不会被程序运行)。
// SPDX-License-Identifier: MIT
  1. 第2行声明源文件所用的solidity版本,因为不同版本语法有差别。这行代码意思是源文件将不允许低于 0.8.4 版本或大于等于 0.9.0 版本的编译器编译

    (第二个条件由^提供)。Solidity 语句以分号(;)结尾。

pragma solidity ^0.8.4;
  1. 第3-4行是合约部分,第3行创建合约(contract),并声明合约的名字 HelloWeb3。第4行是合约的内容,我们声明了一个string(字符串)变量_string,并给他赋值 “Hello Web3!”。
contract HelloWeb3{
    string public _string = "Hello Web3!";}

以后我们会更细的介绍solidity中的变量。

编译并部署代码

在编辑代码的页面,按ctrl+S就可以编译代码,非常方便。

编译好之后,点击左侧菜单的“部署”按钮,进入部署页面。

在默认情况下,remix会用JS虚拟机来模拟以太坊链,运行智能合约,类似在浏览器里跑一条测试链。并且remix会分配几个测试账户给你,每个里面有100 ETH(测试代币),可劲儿用。你点Deploy(黄色按钮),就可以部署咱们写好的合约了。

部署成功后,你会在下面看到名为HelloWeb3的合约,点击_string,就能看到我们代码中写的 “Hello Web3!” 了。

总结

第一讲,我们简单介绍了solidityremix工具,并完成了第一个solidity程序--HelloWeb3。下面我们将继续solidity旅程!

中文solidity资料推荐:

  1. Solidity中文文档(官方文档的中文翻译)

  2. 崔棉大师solidity教程 web3技术教学博主,我看他视频学到了很多

Subscribe to 0xAA
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.