Appearance
特殊变量
在 Solidity
中,除了全局变量之外,还有一种特殊的变量类型叫做特殊变量。这些变量是只读的,在整个合约中都可以被访问,用于提供有用的信息,例如合约地址等。
示例
以下是 Solidity
内置的一些常见特殊变量:
this
: 当前合约的地址。super
: 父合约的引用。selfdestruct
: 合约销毁时的地址。abi
: 提供合约ABI
(应用程序二进制接口)的接口。
以下是一个简单的 Solidity
程序示例,其中展示了如何使用特殊变量:
solidity
pragma solidity ^0.8.0;
contract MyContract {
address public contractAddress; // 声明一个公共的地址状态变量,名为contractAddress
constructor() public {
contractAddress = address(this); // 将当前合约的地址赋值给contractAddress
}
function getContractAddress() public view returns (address) {
return contractAddress; // 返回合约地址
}
}
在这个示例程序中,我们定义了一个名为 MyContract
的合约,并声明了一个公共的地址状态变量 contractAddress
。
在构造函数中,我们将当前合约的地址赋值给 contractAddress
变量。
在 getContractAddress
函数中,我们返回了合约的地址。
需要注意的是,特殊变量是只读的,不能进行修改,因此我们只能将其值赋给其他变量或返回其值。