首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enum in Solidity与CONST

Enum in Solidity与CONST
EN

Ethereum用户
提问于 2018-08-30 16:49:00
回答 1查看 1.4K关注 0票数 1

我们能否将Enum值转换为string?在气体、ENums或CONST方面,哪一种使用更有效?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2018-08-30 17:18:52

在遮罩下,枚举是整数--而不是字符串。编译器会根据选项的数量自动选择最小的可能整数值,因此这几乎总是以较少的空间计算出来,特别是当您的值很长时。

在您的智能契约中,Solidity将自动为您处理将名称转换为ints的问题。如果您声明一个枚举,如:

enum Colors {Red, Orange, Yellow, Green, Blue, Purple}

然后,在契约的其他地方,您可以引用Colors.Red,而不必担心它实际上是内存中的0。您可以在枚举中有256个选项,它仍将作为一个uint8存储,而为每个选项创建一个string (最小为32字节的分配动态字节数组 )。妙语:在你的智能合同中使用枚举。

如果您正在编写使用web3与合同对话的前端应用程序,只需在JS中创建一个映射对象即可。类似于:

const colorEnum = { 0 : 'red', 1 : 'orange', 2 : 'yellow', 3 : 'green', 4 : 'blue', 5 : 'purple' }

票数 5
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/57775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档