Solidity 字符串如何合并?

Solidity 字符串如何合并?,第1张

【问题描述】

以下是我写的Helloworld.sol 代码段,

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.10;
contract Helloworld
{
    string public greet = "Hello World! ";
    string public name;

    function sayHello(string memory _name) public pure returns(string memory){        
        return "Hello, " + _name; // compile fail. 
    }

    function setName(string memory _name) public {
        name = _name;
    }

    function getName() public view returns(string memory) {
        return name;
    }
}

使用Truffle编译后结果如下:

提示:没有 + 运算符。

【问题分析】

原本以为solidity和大部分的javascript的语法一样,应该会有字符串合并的 *** 作,结果令人大失所望。于是求助百度,看到的解决方案都是转化为字节流处理,虽然能实现,这种方式感觉太low了,不符合对一种新语言的追求。于是又继续寻找其他解决方案。

【问题解决】

终于找到一种全新的解决方案,如下:

As of Feb 2022, in Solidity v0.8.12 you can now concatenate strings in a simpler fashion!

string.concat(s1, s2)

 2022年2月份开始,Solidity v0.8.12版本支持string.concat *** 作。

于是试一下,代码修改如下:

编译成功! 

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/1323649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存