[英]Does Ethereum Solidity support Associative Arrays?
例如-具有命名索引或哈希的数组。 类似于PHP代码;
$array = array(
"foo" => "some foo value",
"bar" => "some bar value",);
谢谢
实体支持一种称为映射的类型:
contract MappingExample {
mapping(address => uint) public balances;
function update(uint newBalance) {
balances[msg.sender] = newBalance;
}
}
http://solidity.readthedocs.io/en/develop/types.html#mappings
Solidity支持一种称为struct的结构,该结构从现有类型创建新类型。 这些可以在内部的职能之间传递,但目前尚未在合同与外界之间传递。
只需添加Jacob所说的内容,即可将结构存储在映射(哈希表)中:
mapping(address => MyStruct) structsInMap;
或数组中:
MyStruct[] structsInList;
这是一个小示例,它传递与遵守与ABI兼容的固定大小规则有关的值。
contract StructExample {
struct MyStruct {
bool isMyStruct;
uint amount;
address[3] addressList;
bytes32 name;
}
// storage instance of MyStruct
MyStruct myStruct;
function StructExample(
uint amount,
address address1,
address address2,
address address3,
bytes32 name)
{
myStruct.isMyStruct = true;
myStruct.amount = amount;
myStruct.addressList = [address1, address2, address3];
myStruct.name = name;
}
function getMyStruct()
constant
returns(
bool isMyStruct,
uint amount,
address[3] addressList,
bytes32 name)
{
return (
myStruct.isMyStruct,
myStruct.amount,
myStruct.addressList,
myStruct.name);
}
}
并且浏览器可靠性显示构造函数在构造函数设置之后返回。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.