首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >作为常量映射替换的纯函数?

作为常量映射替换的纯函数?
EN

Ethereum用户
提问于 2019-01-02 21:03:54
回答 2查看 1.1K关注 0票数 2

我需要创建一个常量的查找表uint -> uint。

常量mappingsswitch-case在坚固性中不可用。pure函数充满了if-else是唯一的选择吗?

有什么更好的建议吗?

理想情况下,我想要一个将气体利用率降到最低的选择。

EN

回答 2

Ethereum用户

发布于 2019-01-02 21:12:01

我看不出有什么进退两难。

您可以进行映射:

代码语言:javascript
代码运行次数:0
运行
复制
mapping(uint => uint) public myMap;

您可以在构造函数或其他地方填充某些位置:

代码语言:javascript
代码运行次数:0
运行
复制
constructor() public {
  myMap[1] = 101;
  myMap[2] = 201;
}

这为您提供了一个简单的view函数(myMap(uint) public view returns(uint)),它返回存储在索引处的数字。

如果用例是最好的方法,也可以使view函数充满if/else

详细阐述这个问题,并给出一些提示,说明你想要完成什么,并可能提供更具体的指导。

希望能帮上忙。

票数 4
EN

Ethereum用户

发布于 2019-01-03 00:29:01

如果没有搜索的特殊标准,在稀疏数据情况下,否则if函数的映射效率要低得多。

相反,如果您填补了感兴趣范围内的所有漏洞,那么一个简单的数组就是最好的解决方案。

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

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

复制
相关文章

相似问题

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