主页 > imtoken安卓怎么下载 > 智能合约语言 Solidity 教程系列 7 - 以太单位和时间单位
智能合约语言 Solidity 教程系列 7 - 以太单位和时间单位
这是 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
参考文档
如果您在学习过程中有任何问题,欢迎来到区块链技术问答。这里有专家来回答你的问题。通俗易懂地讲解区块链——优质区块链技术博客+问答社区,对区块链学习的双重帮助