你如何比较 Solidity 中的字符串?
Posted
技术标签:
【中文标题】你如何比较 Solidity 中的字符串?【英文标题】:How do you compare strings in Solidity? 【发布时间】:2019-06-27 04:31:39 【问题描述】:我认为比较字符串会像这样做一样简单:
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】:您可以通过对字符串的打包编码值进行哈希处理来比较字符串:
if (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)))
// do something
keccak256
是一个散列函数supported by Solidity,abi.encodePacked()
通过the Application Binary Interface 编码值。
【讨论】:
以上是关于你如何比较 Solidity 中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章