首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有空值的Solidity

具有空值的Solidity
EN

Ethereum用户
提问于 2018-12-26 09:16:42
回答 1查看 149关注 0票数 1
代码语言:javascript
复制
mapping (address => uint) itemsPerCreator;

if (itemsPerCreator[_creator] == null){}

混合给我一个错误: ParseError:预期的主表达式。

_creator是一个地址类型变量。在映射中,每个地址都有一个uint值。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2018-12-26 10:09:23

您会得到这个错误,因为没有任何东西比nullundefined更可靠。uint使用0初始化。

因此,要检查映射中对应的键的零值状态(默认值或有意更新的值),应该将其写为:

代码语言:javascript
复制
if (itemsPerCreator[_creator] == 0){}

根据稳健性文档

声明的变量将具有一个初始值,其字节表示形式为零。变量的“默认值”是任何类型的典型的“零状态”。例如,bool的默认值为false。uint或int类型的默认值为0。对于静态大小的数组和bytes1到bytes32,每个单独的元素都将被初始化为与其类型对应的默认值。最后,对于动态大小的数组、字节和字符串,默认值是空数组或字符串.

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/64606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档