我认为比较字符串会像做一样简单:
function withStrs(string memory a, string memory b) internal {
if (a == b) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
但是这样做会给我一个错误Operator == not compatible with types string memory and string memory。
什么是正确的方法?
Eva*_*rad 10
您可以通过散列字符串的打包编码值来比较字符串:
if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
keccak256是Solidity 支持的散列函数,并abi.encodePacked()通过应用程序二进制接口对值进行编码。