1.solidity
语法学习
//没有这一句会有警告
// SPDX-License-Identifier: GPL-3.0
//指明版本
pragma solidity >=0.8.7 <0.9.0;
//声明合约
contract trans{
uint8 tt;
function setTT(uint8 i) public {
tt = i;
}
//view : 当前函数不会修改账本数据
//int uint : 默认是uint256
function getTT() public view returns (uint8){
return tt;
}
}关键字
contract
constructor
public
private
external
internal
view
pure
payable
数据类型
uint8 -> uint256: 地址长度 8位递增
string -> 字符串,不可变,可强转
mapping(uint => uint) scoreList; 字典
数据存储位置
memory内存变量,调用结束就消失storage状态变量,随着合约进入分布式账本calldata永久存储
修饰符
变量修饰符:
publicorprivate函数修饰符
view 函数不会改变任何东西,被view修饰的函数可以读取外部变量,不能修改
pure 函数只能处理参数,不能读写函数以外的任何东西
合约调用者地址 address owner = msg.sender; address payable // 可转账合约地址
地址和地址相关操作
address 合约地址&外部账户地址
balacne : 地址余额
transfer : 转账 ,将当前合约余额转给调用者 ex:
常见问题
Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
合约构造方法添加了错误的可见性修饰符,比如 public
最后更新于
这有帮助吗?