Solidity极简入门 | 第二讲:数值类型

  • 本文是《Solidity极简入门》系列第二讲,重点介绍Solidity中的数值类型(Value Type),适合初学者学习,代码已开源在GitHub。

  • 布尔型:取值为truefalse,支持逻辑非(!)、与(&&)、或(||)等运算符,并演示了相关代码示例。

  • 整型:包括有符号(int)和无符号(uint)整数,介绍了比较运算符(如<==)和算术运算符(如+**幂运算),附代码说明。

  • 地址类型:存储20字节的以太坊地址,区分普通地址和可支付ETH的payable地址,后者包含balancetransfer()成员方法。

  • 定长字节数组:如bytes8bytes32,用于高效存储数据,示例展示了如何将字符串转换为字节并截取部分内容。

  • 枚举(enum):用户自定义类型,与uint可显式转换,但实际使用较少,需注意转换时的范围检查。

  • 后续章节将涵盖函数类型、引用类型及映射类型。本文内容简洁实用,为Solidity基础学习提供了清晰指导。

总结

原文标题:《Solidity 极简入门:2. 数值类型》

原文来源:0xAA

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

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

Solidity 中的变量类型数值类型 (Value Type):包括布尔型,整数型等等,这类变量赋值时候直接传递数值。引用类型 (Reference Type):包括数组和结构体,这类变量占空间大,赋值时候直接传递地址(类似指针)。映射类型 (Mapping Type): Solidity 里的哈希表。函数类型 (Function Type):Solidity 文档里把函数归到数值类型,但我觉得他跟其他类型差别很大,所以单独分一类。

我们只介绍一些常用的类型,不常用的不讲。这篇介绍数值类型,第 3 讲介绍函数类型,第 4 讲介绍引用和映射。

数值类型 1. 布尔型

布尔型是二值变量,取值为 true 或 false。

 

Solidity极简入门 | 第二讲:数值类型

 

布尔值的运算符,包括:

!(逻辑非)

&&(逻辑与,"and")

||(逻辑或,"or")

==(等于)

!=(不等于)

代码:

 

Solidity极简入门 | 第二讲:数值类型

 

上面的代码中:变量_bool 的取值是 true;_bool1 是_bool 的非,为 false;_bool && _bool1 为 false;_bool || _bool1 为 true;_bool == _bool1 为 false;_bool != _bool1 为 true。

2. 整型

整型是 solidity 中的整数,最常用的包括

 

Solidity极简入门 | 第二讲:数值类型

 

常用的整型运算符包括:

比较运算符(返回布尔值): <=, <, ==, !=, >=, >

算数运算符: +, -,一元运算 -, +, *, /, %(取余),**(幂)

代码:

 

Solidity极简入门 | 第二讲:数值类型

 

大家可以跑一下代码,看看这 4 个变量分别是多少。答对奖励个 POAP?

3. 地址类型

地址类型 (address) 存储一个 20 字节的值(以太坊地址的大小)。地址类型也有成员变量,并作为所有合约的基础。有普通的地址和可以转账 ETH 的地址(payable)。payable 的地址拥有 balance 和 tranfer() 两个成员,方便查询 ETH 余额以及转账。

代码

 

Solidity极简入门 | 第二讲:数值类型

 

下一讲介绍函数的时候,会介绍如何使用地址类型。

4. 定长字节数组

字节数组 bytes 分两种,一种定长(byte, bytes8, bytes32),另一种不定长。定长的属于数值类型,不定长的是引用类型(之后讲)。

定长 bytes 可以存一些数据,消耗 gas 比较少。

代码:

 

Solidity极简入门 | 第二讲:数值类型

 

MiniSolidity 变量以字节的方式存储进变量_byte32,转换成 16 进制为:0x4d696e69536f6c69646974790000000000000000000000000000000000000000

_byte 变量存储_byte32 的第一个字节,为 0x4d。

5. 枚举 enum

枚举(enum)是 solidity 中用户定义的数据类型。它主要用于为 uint 分配名称,是程序易于阅读和维护。它与 C 语言中的 enum 类似,把名称从 0 开始 uint 表示:

 

Solidity极简入门 | 第二讲:数值类型

 

它可以显式的和 uint 相互转换,并会检查转换的正整数是否在枚举的长度内,不然会报错:

 

Solidity极简入门 | 第二讲:数值类型

 

enum 的一个比较冷门的变量,几乎没什么人用。

总结

在第二讲,我们介绍了 solidity 中 4 种变量类型,并详细介绍了数值变量(value type) 中的布尔型,整型,地址,定长字节数组和枚举。之后我们会介绍其他几种类型。

分享至:

作者:0xAA

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:0xAA如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
刚刚
1小时前
1小时前
2小时前
4小时前
4小时前

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读