以太坊solidity数值类型
2019-08-02 本文已影响20人
黑猫编程
数据类型分类
- 值类型(值传递)
- 引用类型(指针传递), 没有*号操作符,而是使用两个关键字来表示
- memory(值类型)
- storage(引用类型)
值类型
- 布尔(Booleans)
- 整型(Integer)
- 地址(Address)
- 定长字节数组(fixed byte arrays) // var b1 [10]byte , bytes10
- 有理数和整型(Rational and Integer Literals,String literals)
- 枚举类型(Enums)
- 函数(Function Types)
引用类型
举例: string storage str1
solidity没有指针,对于复杂的结构进行高效传递方式(相当于指针)是使用关键字storage进行修饰。
复杂类型,占用空间较大的。在拷贝时占用空间较大。所以考虑通过引用传递。常见的引用类型有:
- 字符串(string)
- 不定长字节数组(bytes)
- 数组(Array)
- 结构体(Structs)
整型
- int(有符号整型,有正有负)
- uint(无符号整型,无负数)
- 以8位为区间,支持int8,int16,int24 至 int256,uint同理。 (int默认为int256,uint默认为uint256)
pragma solidity ^0.4.24;
contract test1 {
uint256 ui256 = 100;
uint i10 = 10;
function add() constant returns(uint256) {
return ui256 + uint256(i10);
}
}
pragma solidity ^0.4.24;
contract test1 {
uint256 ui256 = 100;
uint i10 = 10;
function add() returns(uint256) {
return ui256 + uint256(i10);
}
function isEqual() returns(bool){
return ui256 == uint256(i10);
}
}