Solidity入门第一步之数据类型

编程入门 行业动态 更新时间:2024-10-27 18:25:19

Solidity入门第一步之<a href=https://www.elefans.com/category/jswz/34/1768302.html style=数据类型"/>

Solidity入门第一步之数据类型

各种类型介绍

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

布尔型

布尔型是二值变量,取值为true或false。用大白话来说就是只能正确或者错误



布尔值的运算符,&& 和 ||运算符遵循短路规则,包括:

  1. ! (逻辑非)

  2. && (逻辑与, “and” ) 双方有一个假的 结果就是假的

  3. || (逻辑或, “or” ) 双方有一个真的 结果就是真的 当第一个是真的时候不执行第二个

  4. == (等于) 判断值是否相等

  5. != (不等于)

整型

   // 整型int public _int = -1; // 整数,包括负数uint public _uint = 1; // 正整数uint256 public _number = 20220330; // 256位正整数


常用的整型运算符包括:

代码例子


地址类型 (如何使用放在函数那一篇里面给大家讲解)

地址类型(address)存储一个 20 字节的值(以太坊地址的大小)。地址类型也有成员变量,并作为所有合约的基础。有普通的地址和可以转账ETH的地址(payable)。其中,payable修饰的地址相对普通地址多了transfer和send两个成员。在payable修饰的地址中,send执行失败不会影响当前合约的执行(但是返回false值,需要开发人员检查send返回值)。balance和transfer(),可以用来查询ETH余额以及安全转账(内置执行失败的处理)。

代码

// 地址
address public _address = 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71;
address payable public _address1 = payable(_address); // payable address,可以转账、查余额
// 地址类型的成员
uint256 public balance = _address1.balance; // balance of address


定长字节数组

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

不定长的是引用类型 定长bytes可以存一些数据,消耗gas比较少。

代码

   // 固定长度的字节数组
bytes32 public _byte32 = "HelloWorld"; 
bytes1 public _byte = _byte32[0]; //存储_byte32的第一个字节,为0x48。

bytes1存放一个字节
HelloWorld变量以字节的方式存储进变量_byte32,转换成16进制为:0x48656c6c6f576f726c6400000000000000000000000000000000000000000000

枚举 enum (基本上没有人使用)

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


可以明显看到如果不是显式的和uint相互转换,是不会出现结果的。

更多推荐

Solidity入门第一步之数据类型

本文发布于:2023-11-16 11:23:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1619687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据类型   入门   Solidity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!