Как вы сравниваете строки в Солидности? - PullRequest
0 голосов
/ 03 февраля 2019

Я бы предположил, что сравнивать строки будет так же просто, как и делать:

function withStrs(string memory a, string memory b) internal {
  if (a == b) {
    // do something
  }
}

Но при этом выдается ошибка Operator == not compatible with types string memory and string memory.

Какой правильный путь?

1 Ответ

0 голосов
/ 03 февраля 2019

Вы можете сравнивать строки, хэшируя упакованные значения кодирования строки:

if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))) {
  // do something
}

keccak256 - это функция хеширования , поддерживаемая Solidity , а abi.encodePacked() кодирует значения через Бинарный интерфейс приложения .

...