函數是一組可重用的代碼,可以在程序的任何地方調用。它幫助程序員模塊化他們的代碼並在不同合約內或跨不同合約多次重用它。
函數定義
要在Solidity 中定義函數,我們需要指定函數的名稱、可見性級別和返回 類型。以及函數將接受的任何輸入參數。一個函數也可以有一個參數列表,其中包含參數的名稱和 數據類型 。
function functionName(type1 param1, type2 param2, …) visibility returnType { // function body}
交易新手?在最好的加密貨幣交易所嘗試加密貨幣交易機器人或複制交易
例如,這裡有一個函數 calculateSum ,它接受兩個 uint (無符號整數)參數並將這兩個值的總和作為a 返回 uint:
function calculateSum(uint a, uint b) public returns (uint) { return a + b;}
函數可見性
你可以指定函數的可見性級別以控制訪問它的位置和方式。可見性分為三個級別:
Public 函數是Solidity 中的默認可見性級別。他們可以從任何地方被調用。它們通常用於定義合約的接口。
Private 另一方面,函數只能從定義它們的合約中調用。它們對於封裝內部實現細節很有用。
Internal函數具有類似於私有的可見性級別,但它們也可以從派生合約中調用。
function publicFunction() public { // function body}function privateFunction() private { // function body}function internalFunction() internal { // function body}
函數調用
要在Solidity 中調用一個函數,我們需要指定函數的名稱和它需要的任何輸入參數。
functionName(param1, param2, …);
例如,考慮一個帶有名為的公共函數的合約,該函數 calculateSum 接受兩個 uint (無符號整數)參數並將這兩個值的總和作為a 返回 uint。要從同一個合約中調用此函數,你可以簡單地使用以下語法:
uint result = calculateSum(3, 5);
要從另一個合約調用公共函數,你需要首先創建該合約的一個實例,然後在該實例上調用該函數
OtherContract contractInstance = new OtherContract();uint result = contractInstance.calculateSum(3, 5);
退貨聲明
在Solidity 中,你可以使用可選 return 關鍵字來指定函數應返回的一個或多個值。該語句應該是函數中的最後一條語句。
下面是一個返回單個值的函數示例:
function getUserName() public returns (string) { return “Alice”;}
你還可以使用元組從函數返回多個值。元組是一種數據類型,它允許你將不同類型的多個值分組到一個實體中。
function getUserData() public returns (string name, uint age) { name = “Alice”; age = 25; return (name, age);}
結論
我希望本文為你在Solidity 中使用函數打下了良好的基礎。如果你有任何疑問或想了解更多信息,請隨時提問