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

十六进制串

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

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

Eclipse将发布与Solana兼容的Layer 2区块链:金色财经报道,第二层开发商Eclipse宣布即将发布Polygon SVM,这是一个与Solana兼容并为Polygon网络构建的区块链。

Eclipse的Polygon SVM区块链的目标是允许Solana开发者将他们的应用程序转移到Polygon,而不必为Ethereum虚拟机(EVM)重建他们的代码。Polygon SVM测试网预计将在今年第一季度推出,主网预计将在第二季度跟进。[2023/2/24 12:26:25]

pragmasolidity>=0

Solana生态流支付协议Zebec推出基于Eclipse技术自有Rollup链:10月2日消息,据报道,Solana生态流支付协议Zebec宣布推出基于Eclipse技术的自有Rollup链,预计于2023年初上线测试网。目前已有超过200个Solana生态项目使用Zebec,Zebec自有Rollup链将满足相关支付应用需求,Eclipse执行层由Solana的执行层派生,包括诸如Solana虚拟机、交易并行处理等功能。此前报道,3月,Zebec通过公开和私人Token销售筹集2800万美元资金,Circle、Coinbase、Solana Ventures 等参投。8 月下旬,Zebec 完成 850 万美元融资,Circle Ventures、Shima Capital、Resolute Ventures 参投。(digitaljournal)[2022/10/2 18:37:32]

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

数据:当前Solana生态总市值为264

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:25ms