智能合约-语法基础2
本文已参与「新人创作礼」活动,一起开启掘金创作之路。1、合约的一些重要关键字:soliditypublic公有,任何人(拥有以太坊账户的)都可以调用private私有, 只有智能合约内部可以调用external仅合约外部可以调用,合约内部需使用this调用internal仅合约内部和继承的合约可以调用view...
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1、合约的一些重要关键字:
solidity public 公有,任何人(拥有以太坊账户的)都可以调用 private 私有, 只有智能合约内部可以调用 external 仅合约外部可以调用,合约内部需使用this调用 internal 仅合约内部和继承的合约可以调用 view/constant 函数会读取但是不会修改任何contract的状态变量 pure(纯净的) 函数不使用任何智能合约的状态变量 payable 调用函数需要付钱,钱付给了智能合约的账户 returns 返回值函数声明中使用 //含s 2、先创建一个合约
```solidity // SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract SimpleStorage {
//这样我们就创建了一个名为SimpleStorage的空合约
}
``` 3、我们可以在这个合约里声明一些变量。
```solidity // SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract SimpleStorage {
uint a ; //声明一个无符号整型 a 默认为uint256 int b ; //声明一个无符号整型 b 默认为int256 bool c ; //声明一个bool类型 string d ; //声明一个字符串类型 address f ; //声明一个地址,通过地址校验和测试的十六进制字面常量 ixed g ; // 定长浮点型,有的符号的固定位浮点数 uixed h ;//定长浮点型,无符号固定位浮点数 enum weekday{sun,mon,tue,wed,the,fri,sat}; //枚举
} ``` 3、我们再声明一个方法
```solidity // SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract SimpleStorage {
address f ;
function getBalance(address people) public view returns (uint){ return address(people).balance; //获取余额 }
}
```
4、再来一个映射
```solidity // SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract SimpleStorage {
address f ;
mapping (uint => address) public addressData;
function getBalance(address people ,unit b) public view returns (uint){ people=addressData[b] return address(people).balance; //获取余额 }
}
```
5、可以讲讲solidity的专属变量address
`` 以太坊中的地址的长度为20字节,一字节等于8位,一共160位,所以address其实亦可以用uint160`来声明。
类型转换:address payable可以隐式转换为简单的address类型,这表示你可以将address payable分配给address类型,而无需显式转换。
```
更多推荐

所有评论(0)