Solidity

將solidity函式限制為只能由另一個函式呼叫

  • October 25, 2018

如何使solidity函式只能被同一合約中的其他函式呼叫?它在 etherscan 或 remix 中不可見,作為正常功能。

例如:

contract Calc {
     function add(uint a, uint b) public returns(uint) {
               return adder(a,b);
            }
     function adder(uint a, uint b) public returns(uint) {
               return (a+b);
         }

}

在這裡,我需要使函式“adder”只能被“add”等其他函式訪問。但使用者無法通過 remix 或 etherscan 訪問我

function adder(uint a, uint b) public returns(uint) {
               return (a+b);
         }

只需將adder函式的可見性從publictointernalprivate

public表示該功能可從內部和外部訪問。

internal意味著該功能只能從合約本身和從該合約繼承的合約中訪問。

private意味著該函式只能在非常智能的合約中呼叫。

引用自:https://ethereum.stackexchange.com/questions/37943