Solidity
結構的預設值
在 Solidity 中考慮以下合約:
pragma solidity ^0.4.2; contract Registry { struct Name { string first; string last; } mapping(address => Name) reg; function newName(string first, string last) { address sender = msg.sender; if(reg[sender] != 0) { throw; } reg[sender].first = first; reg[sender].last = last; } }
在上面的
if
語句中,這是不正確的,我想檢查結構是否Name
已定義,或者是否仍處於預設值,所有欄位都初始化為零。有語言操作員來做嗎?
我會去:
if (reg[sender].first != "" || reg[sender].last != "") { 扔; }
沒有運算符,但您可以檢查兩個字元串的長度是否為零:
if (bytes(reg[sender].first).length != 0 || bytes(reg[sender].last).length != 0) { throw; }
注意:使用 ||
有關的: