Solidity编程语言:十六进制串、枚举enum

十六进制串

十六进制串hex并不是一种Solidity的数据类型,因为你无法将hex作为一个类型去使用。?当把hex加到字面量前的时候,其作用就是限定了字面量的数据格式,必须是偶数位的的字符串。这样当使用特定的数据类型去引用hex串的时候,隐式的会进行转换。比如stringmemoryh=hex"010A31",转换后的字符串h实际内容是\u0001\n1。

另外在使用bytes4类型的固定长度字节数组进行引用时,hex长度不能超过引用类型的实际长度,比如bytes4b=hex"AABBccddee"是无法编译的。

NievanaMeta已同SOLDAO签署合作,致力于推动solana跨链的发展:据官方消息,NievanaMeta已同SOLDAO签署合作,致力于推动solana跨链桥的深度发展。 NirvanaMeta、SOLDA同Solana后续的深度合作将逐步开展。

据官方介绍,SOLDAO,由欧洲SOLDAO基金会,联合欧洲、北美洲、亚洲Solana社区共同成立。SOLDAO已在跨链桥、NFT、Gamefi等领域与Solana官方达成深度合作。[2022/4/20 14:36:54]

pragmasolidity>=0

Solana首席执行官:Solana自创建之初就是为了提高速度:9月21日消息,Solana Labs联合创始人兼首席执行官Anatoly Yakovenko最近解释了该项目如何成功成为加密领域的巨头。最近在2021年SALT大会上接受Cointelegraph采访时,Yakovenko表示,他的项目专注于提高速度,以满足加密资产普及所需的规模需求。他补充说,Solana从第一天开始就是为了速度而构建的,与其他PoS网络不同的是,它针对特定的在线交易用例进行了优化,以支持每天进行数百万笔交易的平台。Yakovenko称,SOL最近被第三方验证器记录为每秒可处理20万笔交易,随着加密项目的硬件越来越好,“容量也在增加”。Solana依靠一个由60名志愿者组成的开发团队,自2020年3月进入市场以来,成功实现了爆炸式增长。该网络托管了400多个项目,其中有许多NFT和DeFi应用程序。(Crypto Globe)[2021/9/21 23:40:56]

functiontest1()publicreturns(stringmemory){stringmemoryh=hex"010A";returnh;}

BiKi ETF专区SOL3S/USDT今日最高涨幅90

functiontest3()publicreturns(bytesmemory){bytesmemoryb=hex"AABBccdd";returnb;}}

枚举enum

Solidity中枚举类型与其他编程语言基本一样。我们来看一个例子,比如定义个季节的枚举。

pragmasolidity>=0

functiontest1()publicreturns(Season){returnprintSeason(Season

functiontest2()publicreturns(uint){uints=uint(Season

functiontest3()publicreturns(Season){//Seasons=Season(5);//越界Seasons=Season(3);returns;}}

enum的实际类型是无符号整数,当枚举数量是0-127范围内,则enum是uint8类型的,如果是0-32,767范围内,则enum是uint16类型的,以次类推。

既然enum是uint类型,则可以进行类型转换,比如uints=uint(Season.Spring)是将枚举Season类型转换在uint,当然也可以转成uint8,只要不越界就可以。同样Seasons=Season(3)是将uint转成Season类型的。同样需要注意的是整数不要超过枚举的范围,比如Season的范围是0-3,如果将5转换成Season则会在运行进出现异常,而编译可以通过。

作者:感谢HPB技术社区整理供稿。

汪晓明博客http://wangxiaoming.com/

汪晓明:HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:0ms0-1:394ms