solidity语言实现字符串拼接

0. 引言

当你开始学习使用solidity开发以太坊智能合约之后,很快你会碰到一个问题:

在solidity中该如何拼接字符串?
var str = 'Hello'
var b = str + 'World'

可能你已经试过上述代码,但是真的可以吗?

实际上,solidity官方文档表示在目前版本中,需要开发者实现字符串拼接功能。

1. 造轮子

原理:利用bytes和string之间的类型转换来实现字符串拼接。
contract StringUtil {
    function strConcat(string _a, string _b) internal returns (string){
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        string memory ret = new string(_ba.length + _bb.length);
        bytes memory bret = bytes(ret);
        uint k = 0;
        for (uint i = 0; i < _ba.length; i++) bret[k++] = _ba[i];
        for (i = 0; i < _bb.length; i++) bret[k++] = _bb[i];
        return string(ret);
   }
}

2. 使用第三方库

不过好在有人写了一个库,可以让我们省些力气:

Tags:Solidity

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
原文作者:liwiki
原文标题:solidity语言实现字符串拼接
原文链接:https://blog.dicuu.com/blockchain/177.html

上一篇
打赏
下一篇

该页面评论已关闭