Visibility
為什麼/應該使用 private 進行映射?
mapping(address => uint) private _balances; function balance() public view returns (uint) { return _balances[msg.sender]; }
我的問題是。你應該/為什麼/什麼時候應該使用私有 _balances,而不是只使用 public 而不必為函式編寫 getter
mapping(address => uint) public balances;
主要區別是什麼?
編寫自己的 getter 並將 private 用於映射的唯一原因是,如果您想以某種方式將映射與合約的其他狀態結合起來(為 getter 添加一些附加值)。
在編寫自己的 getter 函式時,您所做的操作與solidity 將狀態變數和函式編譯為字節碼時所做的操作相同。