Solidity

為什麼要設置 balanceOf 而不是只在 ERC20 代幣中使用公共變數?

  • March 16, 2021

再會,

ERC20 將以下 2 個函式指定為其最重要的函式:

function balanceOf(address _owner) constant returns (uint256 balance){}
function transfer(address _to, uint256 _value) returns (bool success){}

但是 balanceOf 函式只不過是一種訪問儲存在簡單映射數組中的資訊的奇特方式。為什麼不將 balances 映射數組設置為公開並完成呢?

mapping (address=>uint) public balanceOf;

我覺得好像我在這裡錯過了什麼。一如既往,感謝您的幫助。

該函式只是定義了一種訪問映射數組的方式,並假設您沒有將其修飾符設置為 public。

在乙太錢包中,它們似乎都以相同的方式工作,因此如果您只需要查看餘額,則沒有真正的區別。

因為安全原因。擁有變數 private 允許您將其鎖定在需求之後。例如,只有令牌的所有者才能呼叫該令牌的 tranfer() 函式。

(您還可以將另一個帳戶設置為您的代幣的“操作員”,從而授予該“操作員”帳戶呼叫您代幣的 transfer() 函式的權限)。

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