mapping可以理解为python中对字典的键值遍历,键是唯一的而值是可以重复的

mapping函数的构造: mapping(_KeyType => _ValueType)

 mapping (address => uint) public balances;

上文代码解析:mapping(键类型=>值类型), 在上述代码中,映射的名字是balances,权限类型为public,键的类型是地址address,值的类型是整型uint

 contract MappingExample{
     mapping(address => uint) public balances;
     
     function update(uint amount) returns (address addr){
         balances[msg.sender] = amount;
         return msg.sender;
    }
 }

在上述代码中,首先定义了一个balance的映射. msg.sender为创建合约用户的地址,将用户地址放入balance中(也就是代码balances[msg.sender])以定位到账户地址的balance

另一个例子:

 pragma solidity ^0.5.0;
 ​
 contract LedgerBalance {
    mapping(address => uint) public balances;
 ​
    function updateBalance(uint newBalance) public {
       balances[msg.sender] = newBalance;
    }
 }
 contract Updater {
    function updateBalance() public returns (uint) {
       LedgerBalance ledgerBalance = new LedgerBalance();
       ledgerBalance.updateBalance(10);
       return ledgerBalance.balances(address(this));
    }
 }

OutPut:

 {
    "0": "uint256: 10"
 }
 

solidity中的mapping的更多相关文章

  1. Solidity中如何判断mapping中某个键是否为空呢?

    Solidity中如何判断mapping中某个键是否为空呢? 一.比较标准的做法是建立一个专门和value相关的结构体,用一个布尔型变量来看是否这个key所对应的value被赋过值 代码如下: pra ...

  2. Solidity 中文文档 —— 第一章:Introduction to Smart Contracts

    第一章:智能合约简介 粗略地翻译了 Ethereum 的智能合约开发语言的文档:Solidity.欢迎转载,注明出处. 有任何问题请联系我,本人微信:wx1076869692,更多详情见文末. 我是 ...

  3. knockoutjs中使用mapping插件绑定数据列表

    使用KO绑定数据列表示例:   1.先申请V,T,T2三个辅助方法,方便调试.声明viewModel和加载数据时的映射条件mapping    2.先使用ko.mapping.fromJS()将原来的 ...

  4. elasticsearch中的mapping映射配置与查询典型案例

    elasticsearch中的mapping映射配置与查询典型案例 elasticsearch中的mapping映射配置示例比如要搭建个中文新闻信息的搜索引擎,新闻有"标题".&q ...

  5. Solidity中uint转string

    在<Solidity中uint转bytes>中,我们知道unit如何转换成bytes,其实把uint转换成string,就是在最后加上string(bytes变量)即可,如下所示: pra ...

  6. Solidity中uint转bytes

    Solidity中uint转bytes方法如下: pragma solidity ^0.4.2; contract Test { function toBytesNickJohnson(uint256 ...

  7. Solidity中的基本类型转换

    Solidity中的基本类型转换(十四)|入门系列 2017/4/29 posted in Solidity入门系列 点击查看原文,获得优化的排版. 隐式转换 如果一个运算符能支持不同类型.编译器会隐 ...

  8. ElasticSearch 中的 Mapping

    公号:码农充电站pro 主页:https://codeshellme.github.io 1,ES 中的 Mapping ES 中的 Mapping 相当于传统数据库中的表定义,它有以下作用: 定义索 ...

  9. 在 Solidity 中 ++i 为什么比 i++ 更省 Gas?

    前言 作为一个初学者,"在 Solidity 中 ++i 为什么比 i++ 更省 Gas?" 这个问题始终在每个寂静的深夜困扰着我.也曾在网上搜索过相关问题,但没有得到根本性的解答 ...

  10. es中对mapping的理解

    (1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping (2)mapping中就自动定义了每个field的数据类型 (3)不同的数据类型(比如说text和date) ...

随机推荐

  1. 【Appium_python】启动app,出现多次打开关闭导致失败问题,driver用单例模式(_new_)进行解决。

    运用多设备,启动app多次出现打开又关闭问题,查看后是多次对driver进行实例化,就用单例的模式进行解决. 单例模式(Singleton Pattern)目的就是保证一个类仅有一个实例,每一次执行类 ...

  2. iOS学习十二之选择器控件UIPickerView

    UIPickerView是一个简易的列表控件,用于提供有限个数的选项供用户选择. 它是通过代理和数据源的方法对其进行设置和数据源填充的,这种控件的设计模式也是代理模式的应用之一. 添加下面的代码即可实 ...

  3. Windows修改用户名

    修改用户名 右键此电脑>>管理>>本地用户和组>>用户,找到要修改的用户,重命名 修改用户home目录名 1.激活管理员账号 右键此电脑>>管理> ...

  4. MySql 在 Linux 下的安装与基础配置

    使用版本:Mysql (5.7) Linux(CentOS 7.2) 1.安装 1)下载MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/ ...

  5. java的3中代理模式

    代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class ...

  6. k8s介绍和学习思路

    1. Kubernetes介绍 Kubernetes是一个完备的分布式系统支撑平台.具备完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建的智能 ...

  7. Chrome浏览器:Your Connection is not private 您的连接不是私密连接

    在图片图片所示的任何地方输入: thisisunsafe 没错就是这么6,然后就可以访问了.输错了请刷新再来(微笑) https://blog.csdn.net/filbert_917/article ...

  8. unidbgrid按回车键切换到右侧CELL

    打开UniDBGrid的ClientEvents->ExtEvents属性,编辑Ext.grid.Panel的reconfig函数,输入如下代码就可以实现当UniDBGrid表格的ReadOnl ...

  9. django 批量提交

    https://www.cnblogs.com/lbzbky/articles/11792545.html

  10. Nacos与OpenFeign开发

    目录 1.前言 2.生产者 3.消费者 4.扩展 1.前言 我的话是微服务B调用微服务A的controller层 2.生产者 微服务A请求接口如下: @GetMapping("/listUn ...