不能直接return a == b;,因为Solidity是不支持两个字符串直接比较的。
将string类型转换为bytes类型,它实际上是一个字节数组,每一个字节是可以直接比较,因此只要所有的字节都能相等,就代表两个字符串相等。文章来源:https://www.toymoban.com/news/detail-512123.html
function isEqual(string memory a, string memory b) public pure returns (bool) {
bytes memory aa = bytes(a);
bytes memory bb = bytes(b);
// 如果长度不等,直接返回
if (aa.length != bb.length) return false;
// 按位比较
for(uint i = 0; i < aa.length; i ++) {
if(aa[i] != bb[i]) return false;
}
return true;
}
https://github.com/WeBankBlockchain/SmartDev-Contract/blob/master/docs/miscs/tutorial/Solidity-basic.md文章来源地址https://www.toymoban.com/news/detail-512123.html
到了这里,关于区块链 以太坊 solidity 如何比较2个字符串相等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!