Solidity
堅固性。查找映射中是否存在鍵。然後得到它的值
我有一個簡單的映射:
mapping(address => string) professorsExam;
如何檢查是否
msg.sender
是此映射中的鍵,如果是,則獲取其值?如果不是,我應該返回一些東西。string memory professorsExamHash = professorsExam[msg.sender]; // The hash of the exam owned by msg.sender if(professorsExamHash == 0x0){ return "No exam hash asociated with this professor address"; }
這行不通,
TypeError: Operator == 與類型字元串記憶體和 int_const 0 不兼容
我已經嘗試了很多其他的東西。但
==
到目前為止,任何東西之間都不兼容。
您可以檢查值的字節長度。為此,您可以將字元串轉換為字節並檢查長度。如果大於0,則存在。
您的新程式碼如下:
if(bytes(professorsExamHash).length == 0){ return "No exam hash asociated with this professor address"; }