设置数值/取数值/加法运算
讲解
- 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进行初始化合约赋值,先输入品牌,价格再部署合约,赋予初始默认值