3.3 全局变量和函数

作者: 9c0ddf06559c | 来源:发表于2018-09-26 19:40 被阅读1次

3.3 全局变量和函数

全局变量和函数可以理解为solidity提供的一些API,在我们编写智能合约的时候,我们可以使用这些变量和函数去获得一些属性,他主要分为以下四类:

  1. 有关区块和交易

常用的区块和交易相关的函数和属性有:

  • msg.sender (address) :获取交易者发送的地址
  • msg.value (uint):当前交易所附带的以太币,单位是wei
  • block.coinbase (address):当前旷工的地址
  • block.difficulty (uint):当前块的难度
  • block.number (uint):当前区块的块号,索引
  • block.timestamp (uint):当前块的unix时间戳
  • now (uint):当前区块的时间戳,timestamp的别名
  • tx.gasprice (uint):当前交易的gas
  1. 有关错误处理

  • 什么是错误处理:指在程序发生错误时的处理方式
  • 处理方式:回退状态,solidity没有try-catch语句,当一个错误发生的时候的时候,会回退所有的状态变化,就像所有的错误都没有发生过一样。但是消耗的gas就是消耗了。
  • 为什么这么处理呢:我们可以把区块链当成分布式的事务性的数据库。即每一个调用都是事务性的,要么全部成功,要么全部失败
  • 错误如何来被处理:
  • assert(内) 通常是用来检测函数内部的错误;会抛出Assert异常,会消耗掉所有的gas
  • require(外) 通常是用来检查输入的变量,或者是合约的状态变量是否满足条件,Require不会
function sendHalf(address addr) public payable returns(uint balance){
require(msg.value % 2 == 0);
uint balanceBeforeTransfer = this.balance;
addr.transfer(msg.value / 2 + 1);
assert(this.balance == balanceBeforeTransfer / 2);
return this.balance;
}
  1. 有关数字和加密功能

  2. 有关地址和合约

相关文章

  • 3.3 全局变量和函数

    3.3 全局变量和函数 全局变量和函数可以理解为solidity提供的一些API,在我们编写智能合约的时候,我们可...

  • bash变量的作用域

    bash变量的作用域 bash有两类变量:全局变量和函数内变量 全局变量 定义在函数外面的函数就是全局变量。下面例...

  • 作用域_全局变量

    JavaScript 全局变量 变量在函数外定义,即为全局变量。 全局变量有 全局作用域: 网页中所有脚本和函数都...

  • swift 宏定义

    两点:1、定义全局变量\函数2、“输出”全局函数在debug和release下设置 一、定义全局变量和全局函数 s...

  • 什么是 全局变量 & 宏 & 大程序怎么写,看这一篇就够了

    全局变量 认识 全局变量 定义在函数外的变量就是全局变量 全局变量具有全局的生存期和作用域它们与任何函数无关任何函...

  • 变量的作用域、封闭函数、用变量的方式定义函数、闭包

    变量的作用域 全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享 封闭函数 全局变量:函数外部...

  • go语言中init函数的注意事项和细节

    如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程为: 全局变量定义→init函数→mai...

  • 全局变量

    全局变量 定义在函数外面的变量是全局变量 全局变量具有全局的生存期和作用域他们与任何函数无关在任何函数内部都可以使...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • JS基础(三)函数-面向对象编程

    函数 函数的定义 函数的类型 函数绑定事件调用 函数绑定事件调用实例 有参函数 函数返回值 声明全局变量 全局变量...

网友评论

    本文标题:3.3 全局变量和函数

    本文链接:https://www.haomeiwen.com/subject/kumjoftx.html