- Solidity 教程
- Solidity - 首页
- Solidity - 概述
- Solidity - 环境设置
- Solidity - 基本语法
- Solidity - 第一个应用程序
- Solidity - 注释
- Solidity - 数据类型
- Solidity - 变量
- Solidity - 变量作用域
- Solidity - 运算符
- Solidity - 循环
- Solidity - 条件语句
- Solidity - 字符串
- Solidity - 数组
- Solidity - 枚举
- Solidity - 结构体
- Solidity - 映射
- Solidity - 类型转换
- Solidity - 以太币单位
- Solidity - 特殊变量
- Solidity - 样式指南
- Solidity 函数
- Solidity - 函数
- Solidity - 函数修饰符
- Solidity - view 函数
- Solidity - pure 函数
- Solidity - 回退函数
- 函数重载
- 数学函数
- 加密函数
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 受限访问
- Solidity 高级
- Solidity - 合约
- Solidity - 继承
- Solidity - 构造函数
- Solidity - 抽象合约
- Solidity - 接口
- Solidity - 库
- Solidity - 汇编
- Solidity - 事件
- Solidity - 错误处理
- Solidity 有用资源
- Solidity - 快速指南
- Solidity - 有用资源
- Solidity - 讨论
Solidity - 特殊变量
特殊变量是全局可用的变量,提供有关区块链的信息。以下是特殊变量的列表:
序号 | 特殊变量及描述 |
---|---|
1 | blockhash(uint blockNumber) returns (bytes32) 给定区块的哈希值 - 仅适用于最近的 256 个区块(不包括当前区块)。 |
2 | block.coinbase (address payable) 当前区块矿工的地址。 |
3 | block.difficulty (uint) 当前区块难度。 |
4 | block.gaslimit (uint) 当前区块 gas 限制。 |
5 | block.number (uint) 当前区块编号。 |
6 | block.timestamp 自 Unix 元年以来的当前区块时间戳(秒)。 |
7 | gasleft() returns (uint256) 剩余 gas。 |
8 | msg.data (bytes calldata) 完整的 calldata。 |
9 | msg.sender (address payable) 消息发送者(当前调用)。 |
10 | msg.sig (bytes4) calldata 的前四个字节(即函数标识符)。 |
11 | msg.value (uint) 随消息发送的 wei 数量。 |
12 | now (uint) 当前区块时间戳(block.timestamp 的别名)。 |
13 | tx.gasprice (uint) 交易的 gas 价格。 |
14 | tx.origin (address payable) 交易发送者(完整的调用链)。 |
示例
尝试以下代码,查看如何使用 msg(一个特殊变量)在 Solidity 中获取发送者地址。
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)); } }
使用Solidity 第一个应用程序章节中提供的步骤运行上述程序。
首先点击**updateBalance**按钮将值设置为 10,然后查看日志,其中将显示解码后的输出为:
输出
{ "0": "uint256: 10" }
广告