这个 Solidity 映射变量在哪里初始化?

Where is this Solidity mapping variable initialised?

"Modular Contracts" 中有使用映射的示例代码,但我看不到每个映射索引的值是在哪里分配的。

映射定义为:

mapping(address => uint256) balances;

并传入库函数"Balances":

library Balances {
    function move(mapping(address => uint256) storage balances, 
        address from, 
        address to, 
        uint amount) internal {
            require(balances[from] >= amount);
            require(balances[to] + amount >= balances[to]);
            balances[from] -= amount;
            balances[to] += amount;
        ...

但我没有看到在完整的 code example 的任何部分中最初将任何值实际添加到 balances 的位置。

move函数首先检查是否balances[from] >= amount。在该函数的末尾,您会看到它从已识别的 balances 中添加和减去,但永远不会达到该代码,对吗?因为 require(balances[from] >= amount); 总是 return false。

我错过了什么?

这只是模块化合约的一个示例,您可以在构造函数中添加任何余额,例如

constructor() public {
  balances[yourAddress] = amount
}