Solidity中,有一些数据类型由简单数据类型组合而成,相比于简单的值类型,这些类型通常通过名称引用,被称为引用类型,
引用类型包括:
数组 (字符串与bytes是特殊的数组,所以也是引用类型)
struct (结构体)
map (映射)
这些类型涉及到的数据量较大,复制它们可能要消耗大量Gas,非常昂贵,所以使用它们时,必须考虑存储位置,例如,是保存在内存中,还是在EVM存储区中。
运算符
Solidity 支持以下类型的运算符:
算术运算符
比较运算符
逻辑(或关系)运算符
赋值运算符
条件(或三元)运算符
算术运算符
pragma solidity ^0.4.22;
contract SolidityTest3{
constructor() public{
}
function getResult() public view returns(uint){
uint a = 1;
uint b = 2;
uint result = a+b;//算数运算符
return result;
}
}
比较运算符
pragma solidity ^0.4.22;
contract SolidityTest4{
uint storedDate;
constructor() public{
storedDate = 10;
}
function getResult() public view returns(string memory){
uint a = 1;//局部变量
uint b = 2;
uint result = a + b;
return integerToString(result);
}
function integerToString(uint _i) internal pure
returns(string memory _uintAsString){
if(_i == 0){//比较运算符
return "0";
}
uint j = _i;
uint len;
while(j != 0){//比较运算符
len++;
j/=10;
}
bytes memory bstr = new bytes(len);
uint k = len - 1;
while(_i !=0){
bstr[k--] = byte(uint(48 + _i % 10));
_i /= 10;
}
return string(bstr);//访问局部变量
}
}