我对实际编程非常陌生,没有那么多区块链。我了解一些Java,并试图通过智能合同简介来学习稳健性,在第7行(参见下面),他们使用映射声明变量,但我不明白=>是如何发挥作用的。
mapping (address => uint) public balances;发布于 2017-10-11 04:35:31
映射类似于Java中的Dictionary,在Java中您指定了键和值对,如
var mydictionary = new Dictionary(key,value);
在稳固状态下,您对=>使用相同的方法;其中Key = address和uint作为值。
发布于 2017-10-11 06:37:59
在具有键值对的数组中;可以使用相应的键引用值。
也就是说,array[key]将返回存储的value。
在实体映射中,可以将其看作是一个数组,在这里,在solidity语法中,mapping (address => uint) public balances;意味着balances有一组由address数据类型映射的uint数据类型值。
基本上,您可以从uint获得给定地址的相应balances值。要在这里获得相应的值,您需要调用balances[address],这将返回uint值。
您可以在稳健的医生们中找到详细的解释。
映射类型声明为
mapping(_KeyType => _ValueType)。在这里,_KeyType几乎可以是任何类型,除了映射、动态大小的数组、契约、枚举和结构。_ValueType实际上可以是任何类型,包括映射。映射可以看作是哈希表,这些哈希表实际上是初始化的,因此每个可能的键都存在,并且映射到一个值,该值的字节表示形式都是零:类型的默认值。但是,相似性在这里结束:键数据实际上并不存储在映射中,只有用于查找值的keccak256散列。
这个问题也将很好地了解映射是如何工作的。
https://ethereum.stackexchange.com/questions/28227
复制相似问题