Solidity

如何比較兩個bytes32?

  • December 31, 2019

在我讀到使用字節更便宜之前,我一直在使用字元串。現在我將字元串更改為 bytes32 但我不知道如何比較它們。我需要檢查 require 語句中的兩個 bytes32 是否相等。我該怎麼做?使用正常 == 可以恢復並用 keccak256 包圍它說它是從 bytes32 到請求的字節的無效隱式轉換。

兩個 bytes32 之間的比較是可能的。考慮這個簡單的合約:

pragma solidity 0.5.4;

contract Test {
   bytes32 public constant bytes32_ = "Hello World!";
   bytes32 public constant anotherBytes32 = "Hello World!";

   function areTheyEqual() public pure returns(bool) {
       return (bytes32_ == anotherBytes32);
   }
}

該合約將編譯並返回正確答案(真)。您能否將您的程式碼與問題一起發布?問題出在其他地方,而不是比較本身。

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