Solidity

錯誤:運算符 == 與地址和字節 32 類型不兼容

  • November 23, 2018

如何更改以下程式碼中的最後一行以使其正常工作?

contract University { 
   address public owner; 
   address public student; 
   bytes32 fName; 
   bytes32 lName; 
   bytes32 Studies; 
   bytes32 private caCertificate; 
   bytes32 ipfs_hash;

   constructor() public { 
       owner = msg.sender; 
   } 

    modifier onlyOwner() { if (msg.sender == owner) _; } 
    modifier onlyOwnerOrStudent() { 
        if (msg.sender == owner || msg.sender == student) _; 

   .....
}

我收到錯誤消息:

運算符 == 與地址和字節 32 類型不兼容

您正在比較address和的數據類型bytes32是否相等。由於它們是兩種數據類型,因此不允許使用運算符。根據您的案例,您需要使用studenttobytes32fNameto 。address

引用自:https://ethereum.stackexchange.com/questions/52841