Mapping
mapping(address => uint) public balances
如何獲得餘額?
我注意到
balances
作為映射mapping(address => uint) public balances;
並充當字典,其中地址映射到餘額。(地址->餘額)。對於典型的字典,我們需要首先提供/初始化字典,其中包含一些
address -> balance
對的條目。但在solidity中,它仍然能夠獲取餘額。這是如何實現的?
部署代幣合約時,映射為空 - 沒有數據。
通常,在部署期間,會鑄造一些令牌(憑空創建)並分配給部署者的地址。因此添加了一個條目,將部署者映射
address
到uint
餘額。基本上它說“這個地址有這個餘額”。每當修改任何地址的餘額時,都會修改相同映射的uint
值(對於給定的address
)。當有人查詢該地址的餘額時,使用相同的映射來檢索給定地址的餘額。