Solidity
內部函式類型導致的無限氣體估計
當我使用internal類型標記一個簡單函式時,remix 會引發無限氣體估計警告。沒有這種類型,一切都很好。請問,你知道為什麼嗎?
function half(uint a) { uint b = a/2; //... }
->“一半(uint256)”的氣體估計:“230”
function half(uint a) internal { uint b = a/2; //... }
->“一半(uint256)”的氣體估計:“無限”
函式中是否還有其他事情發生,因為我在混音中沒有這個問題。
pragma solidity ^0.4.19; contract StackEthereumTholoz { function start(uint _int) public pure returns (uint) { return half(_int); } function half(uint _a) internal pure returns (uint) { uint b = _a/2; return b; } }
氣體:72
$$ Update 1 $$
因此,根據您的程式碼(和最少的範常式式碼),當
internal
實際不使用合約時,Remix 無法實際計算 gas 成本。它會自動將其預設設置為無限。