简单存储合约记录笔记(2020-05-28):
pragma solidity ^0.5.7;
contract JiaSimple {
// 备注: 1、当前啥也不变化,将solidity编译版本修改为^0.4.0等版本兼容;2、若删除代码中的memory\storage标记,直接通过^0.4.0编译会报错。因为在5.0版本中要求string必须指定传递的标记类型(注意这两个标记的区别)。
string _info;
// memory 表示直接值传递,不改变原本内容。 此set方法: 将传递进来的内容赋值给_info。
// 补充:若是storage传递则会改变原来传递的值,且当前函数只能是internal,private
function set(string memory _input) public {
_info = _input;
}
function get() public view returns(string memory){
return _info;
}
}
当前代码编译对应的abi:
[{“constant”:false,“inputs”:[{“name”:"_input",“type”:“string”}],“name”:“set”,“outputs”:[],“payable”:false,“stateMutability”:“nonpayable”,“type”:“function”},{“constant”:true,“inputs”:[],“name”:“get”,“outputs”:[{“name”:"",“type”:“string”}],“payable”:false,“stateMutability”:“view”,“type”:“function”}]