Solidity 意义上的合约是位于以太坊区块链上特定地址【181公链2591開发3365微电】的代码(其功能)和数据(其状态)的集合。uint storedData;行声明了一个uint类型(256位的无符号整数)的状态变量storedData。您可以将其视为数据库中的单个插槽,您可以通过调用管理数据库的代码的函数来查询和更改它。在此示例中,合约定义了可用于修改或检索变量值的函数set和 get。
要访问当前合约的成员(如状态变量),通常不需要添加this.前缀,只需通过名称直接访问即可。与其他一些语言不同,省略它不仅仅是风格问题,它会导致访问成员的方式完全不同,稍后会详细介绍。
除了(由于以太坊构建的基础设施)允许任何人存储世界上任何人都可以访问的单个数字之外,该合约还没有做太多事情,而没有(可行的)方法来阻止你发布这个数字。任何人都可以用不同的值再次调用set并覆盖您的号码,但该号码仍存储在区块链的历史记录中。
pragma solidity ^0.8.0;
contract mymath {
function sqrt(uint x) public view returns (uint y) {
uint z = (x + 1) / 2;
y = x;
while (z < y) {
y = z;
z = (x / z + z) / 2;
}
}
function sqr(uint a) public view returns (uint) {
uint c = a * a;
return c;
}
function mul(uint a, uint b) public view returns (uint) {
uint c = a * b;
return c;
}
function sub(uint a, uint b) public view returns (uint) {
return a - b;
}
function add(uint a, uint b) public view returns (uint) {
uint c = a + b;
return c;
}}