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

Solidity简述

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

Solidity具有两个特点:

  1. 基于对象:学会之后,能帮你挣钱找对象。
  2. 高级:不会solidity,在币圈显得很low。

开发工具:remix

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

网址:remix.ethereum.org

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

第一个Solidity程序

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

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

Copy

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

  1. 第1行是注释,会写一下这个代码所用的软件许可(license),这里用的是MIT license。如果不写许可,编译时会警告(warning),但程序可以运行。solidity的注释由"//"开头,后面跟注释的内容(不会被程序运行)。
arduino 复制代码
// SPDX-License-Identifier: MIT
  1. 第2行声明源文件所用的solidity版本,因为不同版本语法有差别。这行代码意思是源文件将不允许小于 0.8.4 版本或大于等于 0.9.0 的编译器编译(第二个条件由^提供)。Solidity 语句以分号(;)结尾。
ini 复制代码
pragma solidity ^0.8.4;
  1. 第3-4行是合约部分,第3行创建合约(contract),并声明合约的名字 HelloWeb3。第4行是合约的内容,我们声明了一个string(字符串)变量_string,并给他赋值 "Hello Web3!"。
ini 复制代码
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技术教学博主,我看他视频学到了很多
相关推荐
We་ct2 分钟前
LeetCode 162. 寻找峰值:二分高效求解
前端·算法·leetcode·typescript·二分·暴力
HWL56794 分钟前
uni-app的生命周期
前端·vue.js·uni-app
softbangong6 分钟前
829-批量提取各子文件夹下文件到一级目录
java·服务器·前端·自动化工具·批量文件处理·文件提取工具·文件夹整理
李剑一7 分钟前
别再瞎写 Cesium 可视化!热力图 + 四色图源码全公开,项目直接复用!
前端·vue.js·cesium
SuperEugene8 分钟前
Vue3 + Vue Router + Pinia 路由守卫规范:beforeEach 应做 / 不应做,避死循环、防重复请求|状态管理与路由规范篇
开发语言·前端·javascript·vue.js·前端框架
Greg_Zhong10 分钟前
Css知识之伪类和伪元素
前端·css
Mintopia11 分钟前
GPT-5.3-Codex 底层逻辑是什么,为什么编码强?
前端·人工智能·ai编程
Mintopia12 分钟前
Opus 模型凭什么收费贵,与其他模型对比理由是什么?
前端·人工智能
东东__net13 分钟前
js逆向与谷歌加密库
开发语言·前端·javascript
SuperHeroWu721 分钟前
【智能体】OpenJiuWen开源智能体开发框架安装讲解
开源·框架·open·智能体·jiuwen