Solidity返回是0


#1

查询一个合约变量的时候如果值不存在。RecordID不存在的时候,solidity返回的为什么是0?

function getData(address _storageContract) constant returns(uint256){

return dataStorage(_storageContract).getUIntValue(sha3("RecordID"));

}


#2

会返回0是因为uint变量的默认值是0。查询不到的时候也会返回这个变量的默认类型。


#3

如果RecordID不存在就会返回这个类型的默认值,由于返回的是uint256,所以默认值是0.


#4

查询的值不存在那就返回该类型的默认值,这里就返回0。


#5

返回0表示查询的值不存在,可以根据返回值是否为0来判断查询是否成功