【Solidity】学习(2)
address 地址类型
40个16进制数,160位
地址包括合约地址和账户地址
payable 合约充值
balance,指的是当前地址的账户value,单位是wei
this指的是当前合约的地址
可以通过地址查找账户余额
pragma solidity ^0.4.0;
contract value {
//合约充值
function pay() payable{
}
function getvalve() view returns(uint){
address add = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
return add.balance;//
}
function getthisvalve() view returns(uint){
return this.balance;//
}
}
transfer
转账和将合约的价值转移
pragma solidity ^0.4.0;
contract value {
//合约充值
function pay() payable{
}
//先pay(),再transfer
function transfer10rther() payable{
address receive = 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c;
receive.transfer(10 ether);
}
//直接选择value的值,即可转换
function transfeMSG() payable{
address receive = 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c;
receive.transfer(msg.value);
}
}
send
send()方法和transfer()类似,但是不安全,在以下情况下会报错:
- 递归深度大于1024
- gas不足
pragma solidity ^0.4.0;
contract value {
//合约充值
function pay() payable{
}
function sendMoney() payable returns (bool){
address receive = 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c;
//在图形化界面,如果输入的value的值不是10,则返回false
return receive.send(10 ether);
}
}
mapping
映射
pragma solidity ^0.4.0;
contract value {
mapping (uint =>string)namemapping;
uint public sum =0;
function initMap(string _name){
namemapping[sum++] = _name;
}
function findNameById(uint _id) view returns(string){
if(_id <=sum)
return namemapping[_id];
else
return "worng";
}
}
函数
function (<parameter types>){private|internal|external|public}
[pure|constant|view|payble][returns(<return types>)]
函数重载
功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同
pragma solidity ^0.4.0;
contract value {
function f1(uint160 a)returns(string){
return "a";
}
function f1(address add)returns(string){
return "add";
}
function test()view returns(string) {
//下面两个情况编译不通过,uint160和地址类型格式相同
//f1(0xca35b7d915458ef540ade6068dfe2f44e8fa733c);
//f1(1);
address add = 0xca35b7d915458ef540ade6068dfe2f44e8fa733c;
return f1(add);
}
}
pragma solidity ^0.4.0;
contract value {
function f1(uint a,uint b)view returns(uint ,uint ){
return (a+b,a*b);
}
function f2(uint a,uint b)view returns(uint add,uint mul){
return (a+b,a*b);
}
}

【Solidity】学习(2)的更多相关文章
- solidity学习-cryptoPunks为实例
在这里使用cryptoPunks为实例来进行solidity的介绍,一般这些内容理解了就能够进行相对简单的智能合约的编写了,同时会添加一些我认为也十分重要的内容学习文档为http://solidity ...
- solidity 学习笔记(7)内联汇编
为什么要有内联汇编? //普通循环和内敛汇编循环比较 pragma solidity ^0.4.25; contract Assembly{ function nativeLoop() public ...
- solidity 学习笔记(6)call 函数
call() 方法 call()是一个底层的接口,用来向一个合约发送消息,也就是说如果你想实现自己的消息传递,可以使用这个函数.函数支持传入任意类型的任意参数,并将参数打包成32字节,相互拼接后向合约 ...
- solidity 学习笔记(5)接口
接口:不用实现方法,仅仅定义方法. pragma solidity ^; contract cat{ //cat实际上实现了接口animalEat,因为他们有相同的方法. string name; f ...
- solidity 学习笔记(3) 函数修饰符/继承
修饰符: 函数修饰符有 constant view pure 其中 constant和view的功能是一样的 不会消耗gas 也就是说不会做任何存储 constant在5.0以后的版本中被废弃 ...
- solidity 学习笔记 2 (二维数组)
solidity 二维数组: pragma solidity ^0.4.23; contract twoArray{ uint[2][3] grade =[[20,30],[40,50],[45,60 ...
- solidity学习笔记
一 pragam solidity ^0.4.23; contract helloword{ string public name ="hello"; function getN ...
- 以太坊智能合约开发 Solidity学习
1. pragma solidity >=0.4.22 <0.6.0;//版本号,头文件 contract BooleanTest { bool _a;//默认返回false int nu ...
- solidity 学习笔记(4)library库
library库的申明: library SafeMath{ functrion mul(uint a,uint b) public returns (uint){ uint c= a*b; asse ...
- cryptopunks的代码解释
1.imageHash就是将punk所有图像合在一起的那张图punks.png进行hash得到一个值,并将该值存储到链上,用处就是你可以通过将图像hash然后跟该值对比看图像对不对.这就是它的用处,在 ...
随机推荐
- 移动端与web端的测试点的差别
单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的.根据两者载体不一样,则区别如下:系统结构方面web项目,b/s架构,基于浏览器的:web测试只要更新了服务器 ...
- JVM性能优化读后笔记
java性能优化权威指南读后笔记 三重境界 1.花似雾中看:对于遇到的额问题还看不清,不知道真真假假,是是非非. 2.悠然见南山:虽然刚开始对这个领域还不清楚,但随着时间推移,你对它有许多自己的见解, ...
- java 编程英语单词,语句
记录一下java 编程工作学习中常用的英语汇总 in other words: 换句话说 dangle :悬挂 separated:分开的 distinct:明显的,独特的 actual :实际的 i ...
- 2018-2019-2 20165315《网络攻防技术》Exp6 信息搜集与漏洞扫描
2018-2019-2 20165315<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.实验内容 二.实验步骤 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫 ...
- 解决在vscode中eslint在vue后缀文件中保存时无法自动格式化的问题
在setting.json中加入如下内容 { "eslint.autoFixOnSave": true, "eslint.validate": [ " ...
- mysql关闭groupby模式
Mysql5.7 出现 SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ w ...
- java搭建SSM的Web开发框架-整合这3者用到的配置文件
1./WEB-INF/web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmln ...
- 分布式ID方案有哪些以及各自的优劣势,我们当如何选择
作者介绍 段同海,就职于达达基础架构团队,主要参与达达分布式ID生成系统,日志采集系统等中间件研发工作. 背景 在分布式系统中,经常需要对大量的数据.消息.http请求等进行唯一标识,例如:在分布式系 ...
- 解决Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
1.在eclipse的workspace里面找到该项目.settings文件夹 2.编辑org.eclipse.wst.common.project.facet.core.xml文件 <?xml ...
- HTML5-之workers(多线程执行)
注:test.js 不涉及DOM元素