我认为比较字符串就像这样做一样容易
function withStrs(string memory a, string memory b) internal {
if (a == b) {
// do something
}
}
但是这样做给我一个错误Operator == not compatible with types string memory and string memory
。
正确的方法是什么?
答案 0 :(得分:1)
您可以通过散列字符串的打包编码值来比较字符串:
if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))) {
// do something
}
keccak256
是哈希函数supported by Solidity,abi.encodePacked()
通过the Application Binary Interface对值进行编码。