区块链 以太坊 solidity 如何比较2个字符串相等

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链 以太坊 solidity 如何比较2个字符串相等相关的知识,希望对你有一定的参考价值。

不能直接return a == b;,因为Solidity是不支持两个字符串直接比较的。

将string类型转换为bytes类型,它实际上是一个字节数组,每一个字节是可以直接比较,因此只要所有的字节都能相等,就代表两个字符串相等。

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

以上是关于区块链 以太坊 solidity 如何比较2个字符串相等的主要内容,如果未能解决你的问题,请参考以下文章

我目前正在学习 Solidity 以及如何在以太坊区块链上开发 Dapps,我的理解是不是正确?

区块链2.0以太坊智能合约solidity之helloworld

区块链2.0以太坊配置solidity编译器sublime详解

以太坊区块链 Solidity solc是什么

区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码

区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码