10 请问 Operator == not compatible with types string memory and literal_string 报错该怎么解决呢?

image.png

image.png

如图,我想判断一个string变量是否等于 "red",出现了这个报错,我想大概是直接写"red"并不是一个string而是 literal_string,所以两者无法比较。但我又想实现两者比较,请问该咋处理呢?有没有啥方法把"red"从 literal_string转换为string?

请先 登录 后评论

最佳答案 2022-03-30 14:01

solidity不能直接比较string,可以通过计算hash值来比较,如:

bytes32 str1Hash = keccak256(abi.encode(str1));
bytes32 str2Hash = keccak256(abi.encode(str2));
return str1Hash == str2Hash;
请先 登录 后评论

其它 1 个回答

zen
请先 登录 后评论
  • 1 关注
  • 0 收藏,3872 浏览
  • happypl 提出于 2022-03-30 12:05