Solidity 龟速入门教程

Solidity 入门教程

Solidity 是什么

Solidity logo

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。

Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。

开发工具

Remix

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

网址:remix.ethereum.org

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

image-20240425151055605

我们来编写一段代码

1
2
3
4
5
6
7
// SPDX-License-Identifier: MIT // 不写这个编辑器会警告,但是不影响运行
pragma solidity ^0.8.0; // 指定编译器版本 不允许小于 0.8.0 或大于 0.9.0的编译器编译

contract HelloWorld { // 创建合约(contract) 名字为 HelloWorld
// 定义变量类型为 string 变量名威 _string 赋值为 HelloWorld
string public _string = "HelloWorld!";
}

编写好代码之后我们点击左侧的编译

image-20240426152253142

然后点击部署

image-20240426152534440

点击即可查看到值

VSCode

如果你不喜欢在线的编译工具我们可以使用本地环境来进行编译代码

在 VScode 中搜索插件 Solidity 进行安装,作用是让代码进行高亮和补充一些代码提示

image-20240425151435575

接下来我们打开 remix

来到首页点击Access File System

image-20240426153232491

出现提示让我们安装一个 npm 包,我们根据文档的说明进行一下安装

1
npm install -g @remix-project/remixd

然后我们创建一个 sol 文件并在终端中找到他的文件夹所在地输入命令 remixd

image-20240426153643076

并在网页上点击content进行连接即可完成

image-20240426153811790

总结

这一讲,我们介绍了 solidity 、开发工具 remix 并且介绍了一下 vscode 和 remix 如何进行联动编写 HelloWorld。

参考资料

Solidity 中文文档

decert

WTF

阮一峰区块链入门教程

崔棉大师solidity教程

数据类型

基本数据类型

布尔类型(bool):true 或 false。
整数类型(int / uint):有符号整数和无符号整数,可以指定位数(如 uint8、int256)。
固定大小的字节数组(bytesN):不可变长度的字节数组,N 可以是 1 到 32 之间的任意整数。
动态大小的字节数组(bytes):不固定长度的字节数组。
固定大小的字符串(stringN):不可变长度的字符串,N 可以是 1 到 32 之间的任意整数。
动态大小的字符串(string):不固定长度的字符串。

复合数据类型

数组(array):可以是固定长度的数组(如 uint[5])或动态长度的数组(如 uint[])。
结构体(struct):自定义的数据结构,可以包含多个不同类型的数据成员。
枚举(enum):用于声明一组命名的常量值序列的用户定义类型。

地址和地址相关类型

地址(address):存储 20 字节的 Ethereum 地址。
地址数组(address[]):地址的动态数组。
地址映射(mapping):键值对的映射结构,其中键是地址类型,值可以是任意数据类型。