首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释为什么调用、delegateCall、staticCall函数在实体中被称为低级函数吗?

有人能解释为什么调用、delegateCall、staticCall函数在实体中被称为低级函数吗?
EN

Ethereum用户
提问于 2020-05-06 07:35:57
回答 1查看 1.8K关注 0票数 4

正如我在许多参考资料中所读到的,这些函数是low level functions。我想知道,我是否应该使用这些方法与已经部署的合同进行交互?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2020-05-06 08:18:51

它们允许您执行契约函数的动态调用(而不是静态调用)。

这与Java中的反射类似,在Java中,使用函数名字符串执行函数。

它也类似于如何在Python或Javascript等解释语言中调用函数。

例如:

代码语言:javascript
复制
def func(x):
   return x * 2
y = eval("func")(3)
print(y)

或者:

代码语言:javascript
复制
function func(x) {
    return x * 2;
}
const y = eval("func")(3);
console.log(y);

在像Solidity这样的强类型语言中,它意味着将在运行时执行的函数不是由编译器决定的,也就是说,它不是在编译器生成的字节码中硬编码的。

这些低级函数在几种不同的场景中都很有用,下面是其中一些:

  • 你不确定返回值的类型(S)(S)
  • 您想要处理失败而不恢复
票数 5
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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