智能合约 / 主题阅读

智能合约中public函数的内部调用方式

本文解释智能合约中public函数的内部调用方式,明确内部调用应直接使用f()而非this.f()。

public函数的内部调用方式

在智能合约中,public函数的内部调用应直接使用f()的形式,而非this.f()。this.f()实际上会创建一次EVM调用,属于外部调用方式。这种调用方式会增加额外的计算和存储开销,因此在合约内部调用时应避免使用。

public函数的可见性与调用限制

public函数在智能合约中是对外公开的,可以在合约内部或外部调用。然而,当在合约内部调用时,应直接使用函数名f(),而不是通过this.f()。this.f()会触发一次外部调用,导致额外的开销。这种调用方式不符合合约内部调用的最佳实践。

public函数的调用形式与性能影响

在智能合约中,使用this.f()调用public函数会触发一次EVM调用,这会增加合约执行的Gas消耗。而直接使用f()进行内部调用则不会产生额外的开销,因此在合约内部调用时应优先选择f()的形式。这种调用方式更高效,也更符合智能合约的执行机制。

资料与延伸阅读

你可以通过以下原始资料核对文中概念,并继续深入阅读。

  1. Anatomy of smart contracts | ethereum.org ↗
← 更多智能合约文章返回顶部 ↑