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

happypl happypl 提出于 2022-03-30 12:05 6201 浏览

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 2022-03-30 12:13

写回答

你需要登录后才可以回答问题,登录