Solidity
為什麼要設置 balanceOf 而不是只在 ERC20 代幣中使用公共變數?
再會,
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() 函式的權限)。