Solidity
是一种用于编写以太坊虚拟机(EVM
)智能合约的编程语言
-
Remix
是以太坊官方推荐的智能合约集成开发环境(IDE) -
创建文件-》编写文件-》编译-》部署
-
第一个solidity程序
// SPDX-License-Identifier: MIT pragma solidity ^0.8.26; contract HelloWorld { string public hi = "helloWorld"; }
- 值类型(Value Type):包括布尔型,整数型等等,这类变量赋值时候直接传递数值。
- 引用类型(Reference Type):包括数组和结构体,这类变量占空间大,赋值时候直接传递地址(类似指针)。
- 映射类型(Mapping Type): Solidity中存储键值对的数据结构,可以理解为哈希表
- 布尔值
// 布尔运算
bool public _bool1 = !_bool; // 取非
bool public _bool2 = _bool && _bool1; // 与
bool public _bool3 = _bool || _bool1; // 或
bool public _bool4 = _bool == _bool1; // 相等
bool public _bool5 = _bool != _bool1; // 不相等
-
整数:
int
、uint
、uint
( 一般使用uint) -
地址类型:
-
普通地址(address): 存储一个 20 字节的值(以太坊地址的大小)。
-
payable address: 比普通地址多了
transfer
和send
两个成员方法,用于接收转账。注:payable 命名后代表这个变量地址是可以转账查余额功能
-
定长字节数组
- 字节数组分为定长和不定长两种:
- 定长字节数组: 属于值类型,数组长度在声明之后不能改变。根据字节数组的长度分为
bytes1
,bytes8
,bytes32
等类型。定长字节数组最多存储 32 bytes 数据,即bytes32
。 - 不定长字节数组: 属于引用类型(之后的章节介绍),数组长度在声明之后可以改变,包括
bytes
等。
- 定长字节数组: 属于值类型,数组长度在声明之后不能改变。根据字节数组的长度分为
- 字节数组分为定长和不定长两种:
-
枚举(
enum
)
补充:1byte = 8bit = 1111 1111 = 0xff