Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >作为常量映射替换的纯函数?

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

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

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

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

有什么更好的建议吗?

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

EN

回答 2

Ethereum用户

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

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

您可以进行映射:

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

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

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

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

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

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

希望能帮上忙。

票数 4
EN

Ethereum用户

发布于 2019-01-02 16:29:01

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

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

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

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

复制
相关文章
javascript的纯函数,纯函数怎么定义
多次调用 slice 发现相同的输入得到相同的输出,所以是纯函数, splice 多次调用之后相同的输入输出结果不一致,splice 改变了原数组,所以splice不是纯函数
开水泡饭
2022/12/26
8530
javascript的纯函数,纯函数怎么定义
纯函数
原文链接:https://note.noxussj.top/?source=cloudtencent 什么是纯函数? 相同的输入永远会得到相同的输出,而且没有任何可观察的副作用。纯函数就类似数学中的函
菜园前端
2023/05/28
2500
映射与函数
1.映射 为非空集合,如果存在法则 ,对 中每个元素 , 中有唯一元素 与之对应,则称 为从 到 的映射, 记作 , 称为 的像,并记作 ,即 , 称为 的原像。 为定义域,记作 , 为值域,记作 或 ,即 。 概念 定义 单射 , 如果, 则 满射 ,即至少存在一个与对应。 双射 既是单射,又是满射,则称为一一映射(双射)。 , 如果 , 则 满射 ,即至少存在一个 与 对应。双射既是单射,又是满射,则称 为一一映射(双射)。 注: :代
小K算法
2021/05/31
6930
Python 优雅的函数映射
在维护的代码中经常出现大量的 if-else ,导致代码不好维护,下面的代码实现的功能是根据不同环境变量来选择执行对应的函数,后面每多一个条件判断都要加一个 elif 判断不是很优雅:
用户4945346
2024/04/30
970
Python 优雅的函数映射
虚函数、纯虚函数
1.类里如果声明了虚函数,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被覆盖(override),这样的话,编译器就可以使用后期绑定来达到多态了。纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。
kdyonly
2023/03/03
4400
【函数式编程】-纯函数
更优美的理解我们使用的代码,更好的享受编程的乐趣,轻松的维护和调试你的代码。额外地说一下,使用纯函数与面向对象编程并无冲突。
用户2845596
2021/01/21
5790
纯虚函数
定义 纯虚函数就是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后面加“=0” 引入原因 方便的使用多态,因此常常在基类中定义虚函数 在很多情况下,基类本身生成对象是不合理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,蛋动物本身生成对象明显不合常理。 为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(virtual ReturnType Function() = 0),则编译器要求在派生类中必须予以重写以实现多
青木
2018/05/28
1.1K0
虚函数与纯虚函数的区别
虚函数(impure virtual)   C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。   子类可以重写父类的虚函数实现子类的特殊化。   如下就是一个父类中的虚函数:
知识浅谈
2020/03/23
1.3K0
什么是纯模块与纯函数?
当您需要导入不导出任何内容但会执行其他操作的内容时,这是一个只有副作用的模块。您导入它只是为了初始化它。
Jean
2021/12/04
8470
什么是纯模块与纯函数?
R中的替换函数gsub
其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。
生信交流平台
2022/09/21
3.2K0
R中的替换函数gsub
[CodeIgniter4]-公共函数和全局常量
CodeIgniter 你可以在任何地方使用它们,并且不需要加载任何 类库或辅助函数。
landv
2020/03/05
3K0
JavaScript 数组纯函数
forEach 遍历所有元素,item 对应的是元素的值,index 对应的是元素的位置
Nian糕
2020/05/18
1.3K0
JavaScript 数组纯函数
函数(四)(数组作为函数参数)
一是数组元素作为函数参数,这种情况下与简单变量作为函数的参数完全一样,数组元素的值被单向传递给形参变量。
pigeon
2022/04/11
1.5K0
函数(四)(数组作为函数参数)
js匿名函数作为函数参数
继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的区别,名字上不知道坑了多少人)也能变通实现。
全栈程序员站长
2022/11/10
5.3K0
【Kotlin】函数 ⑧ ( 函数引用 作为函数参数 | ::函数名 | 函数类型 作为函数返回值类型 )
函数引用 可以将 具名函数 转为 函数的参数值 , 只要可以使用 Lambda 表达式 参数的地方 , 就可以使用 函数引用 进行替代 ;
韩曙亮
2023/03/30
2.9K0
【Kotlin】函数 ⑧ ( 函数引用 作为函数参数 | ::函数名 | 函数类型 作为函数返回值类型 )
谈谈 JavaScript 纯函数
比如 slice 和 splice,这两个函数的作用并无二致——但它们各自的方式却大不同。 其中,slice 符合纯函数的定义,因为对相同的输入它保证能返回相同的输出:
Leophen
2021/08/06
5410
谈谈 JavaScript 纯函数
R替换函数gsub
其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。
生信交流平台
2020/08/06
1.5K0
Dart 中的命名构造函数和常量构造函数
在 Dart 中,和 Java、C++、C# 等语言不同,我们不能通过重载构造函数(即使用相同的构造函数名来创建不同的构造函数)来创建多个构造函数。然而,Dart 提供了一种解决方法:命名构造函数。
心安事随
2024/11/28
1700
C++的虚函数与纯虚函数
C++的虚函数是一种特殊的成员函数,用于实现多态性。虚函数允许在基类中声明一个函数,在派生类中根据需要进行重写,并通过基类指针或引用来调用派生类对象的特定实现。
叶茂林
2023/07/30
2330
结构体作为函数的参数
> 只要结构体成员是一个具有单个值的数据类型,便可把它作为参数传递给接受该特定类型的函数。 > 使用这种方式为函数传递参数与普通变量作为参数相同,都是以传值的方式传递的。
怪兽
2022/12/31
2.1K0

相似问题

接受映射作为输入的Solidity函数

10

作为构造函数参数的传递映射

10

纯函数执行流

10

测试调用非常量函数的函数。

20

常量函数与气体

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文