主页 > imtoken安卓怎么下载 > 智能合约语言 Solidity 教程系列 7 - 以太单位和时间单位

智能合约语言 Solidity 教程系列 7 - 以太单位和时间单位

imtoken安卓怎么下载 2023-02-04 05:07:42

这是 Solidity 教程系列的第七篇,介绍了以太单位和时间单位。该系列带你全面深入地了解 Solidity 语言。有关 Solidity 系列文章的完整列表,请参阅类别 - Solidity。

写在前面

Solidity 是以太坊智能合约编程语言。在阅读本文之前以太币微信群,您应该对以太坊和智能合约有所了解。如果你还不知道,我建议你先看看以太坊是什么

欢迎订阅区块链技术专栏,阅读更全面的分析文章。

以太单位

数字常量(字面量)后跟一个后缀 wei、finney、szabo 或 ether,它们是货币单位。可以转换不同的单位。没有任何后缀的默认单位是wei。不同以太单位之间的换算关系如下:

插曲:以太单位实际上是一位密码学家、以太坊创始人的名字,以纪念他们对数字货币领域的贡献。他们是:wei: Wei Dai Dai Wei 密码学家,发表 B-moneyfinney:Hal Finney Finney 密码学家,工作证明 (POW) 提议 szabo:Nick Szabo Nick Szabo 密码学家,智能合约提议者

我们可以使用以下代码来验证转换关系:

pragma solidity ^0.4.16;
contract testUnit {
    function tf() public pure returns (bool) {
      if (1 ether == 1000 finney){
          return true;
      }
      return false;
    }
    function ts() public pure returns (bool) {
      if (1 ether == 1000000 szabo){
          return true;
      }
      return false;
    }
    function tgw() public pure returns (bool) {
      if (1 ether == 1000000000000000000 wei){
          return true;
      }
      return false;
    }
}

时间单位

时间单位:秒、分、小时、天、周、年可以作为后缀,相互转换。规则如下:

使用这些单位进行日期计算需要特别小心,因为并非每年都有 365 天,而且由于闰秒,并非每一天都有 24 小时。由于无法预测闰秒以太币微信群,因此必须更新外部预言机以获得准确的日历库。

这些后缀不能用于变量。如果要为输入变量指定不同的单位,可以使用以下方法:

pragma solidity ^0.4.16;
contract testTUnit {
    function currTimeInSeconds() public pure returns (uint256){
        return now;
    }
    function f(uint start, uint daysAfter) public {
        if (now >= start + daysAfter * 1 days) {
        // ...
        }
    }
}

人人一课:深入解读以太坊智能合约语言Solidity

参考文档

如果您在学习过程中有任何问题,欢迎来到区块链技术问答。这里有专家来回答你的问题。通俗易懂地讲解区块链——优质区块链技术博客+问答社区,对区块链学习的双重帮助