设置数值/取数值/加法运算
讲解
- uint默认使用256位数的整型
- view表示这个函数仅仅对于数据仅仅是读取,没有修改操作
- returns(uint ),如果单纯指定uint,返回的是函数体内的return值,如果包含uint sum,uint SAD_a,那么返回就会包含sum和SAD_a字段
代码
pragma solidity ^0.4.17;
contract SimpleStorage{
uint myData;
function setData(uint newData)public{
myData = newData;
}
function getData() public view returns(uint){
return myData;
}
function pureAdd(uint a,uint b)public pure returns(uint sum,uint SAD_a){
return (a+b,a);
}
}
界面
进行操作
- 先点击Deploy进行合约部署,然后选择setData,输入数据;在console显示成功执行之后,点击getData取传入的数据
- pureAdd传入两个数字,以英文逗号相隔,输入后点击pureAdd获取相加的结果
汽车品牌/设置和取值
讲解
- string可以输入很多的字符串,因此存在隐患,会爆出警告,可以使用bytes来替代,后面也会设定字节数
- 如果是string,输入的时候需要加入引号
- 如果是bytes,只接收十六进制的数,因此需要编码将utf编码转化为十六进制,使用web3的函数,web3.toHex(“字符串”),生成十六进制的串;web3.toUtf8(“得到的哈希序列”)
- 将price设置为public则默认会有get方法,不需要写对应的获取方法也是可以得到数值的
代码
pragma solidity ^0.4.17;
contract Car{
string brand;
uint public price;
constructor(string initBrand,uint initPrice)public{
brand = initBrand;
price = initPrice;
}
function setBrand(string newBrand)public{
brand = newBrand;
}
function getBrand() public view returns (string){
return brand;
}
function setPrice(uint newPrice)public{
price = newPrice;
}
}
界面
- 加入constructor进行初始化合约赋值,先输入品牌,价格再部署合约,赋予初始默认值