博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以太坊智能合约开发第五篇:字符串拼接—Solidity
阅读量:6953 次
发布时间:2019-06-27

本文共 1055 字,大约阅读时间需要 3 分钟。

原文发表于:

上一篇,我们实现了一个简单的智能合约。用户输入什么字符串,合约就原样返回什么。在文章最后抛出了一个问题:如果我们事先在合约里定义好 Hello 字符串,如何与 name 变量进行字符串拼接?

在智能合约里进行字符串的拼接可不是一件简单的事情。本篇就来介绍智能合约里的字符串拼接。

尝试

我们先用绝大部分语言都通用的连接符 +. 来尝试着修改代码:

//pragma关键字:版本申明。//用来指示编译器将代码编译成特定版本,以免引起兼容性问题//此处不支持0.4.0之前的编译器,也不支持0.5.0之后的编译器(条件为 ^)pragma solidity ^0.4.0;//contract关键字:合约申明//和Java、PHP中的class类似//此处是申明一个名为Hello的合约contract Hello {    string str="Hello ";    //public: 函数访问属性(后续文章为详细阐述)    //returns (string): 定义返回值类型为string    function say(string name) public returns (string) {        return str + name;    }}复制代码

运行 node deploy.js 部署脚本后,抛出了一个异常:

TypeError: Operator + not compatible with types string storage ref and string memory

return str + name;

我们将其修改为 . 并尝试部署后,也抛出一个异常:

TypeError: Member "name" not found or not visible after argument-dependent lookup in string storage ref return str . name;

说明在智能合约里,***+*** 和 . 都不是连接符。 通过查阅 ,我们发现 Solidity 语言并不提供字符串连接符的语法:

那有没有其他方式,可以实现字符串的拼接功能呢?

以下部分为付费用户专享福利,请点击链接跳转至付费购买。通过阅读以下部分,你将学习到:

  • 第三方字符串工具合约:字符串的扩展处理(查找、分割、比较、拼接等功能)
  • 智能合约里第三方合约的引入
  • 字符串的拼接实现

我的专栏: 智能合约开发QQ群:753778670

转载地址:http://vbnil.baihongyu.com/

你可能感兴趣的文章
汽车常识全面介绍 - 引擎概论
查看>>
Android源码个个击破之Activity的渲染过程深入剖析
查看>>
C# 免费发邮件
查看>>
final关键字
查看>>
《Java程序员面试宝典》学习笔记(数据结构部分)
查看>>
[转载] 中华典故故事(孙刚)——29 拍马屁
查看>>
[转载] Discrete Mathematics——06 集合代数
查看>>
018,idea 下 如何集成 generator
查看>>
Java集合之队列和栈
查看>>
关于Oracle的一些学习简单知识
查看>>
基于Spring MVC框架的Http流程分析
查看>>
ios翻译
查看>>
《技术范儿》NO.3:畅谈数字时代存储变革之数据管理 ——随堂笔记
查看>>
grep
查看>>
保险数据调整结转前后处理
查看>>
大型网站技术架构(四)网站的高性能架构
查看>>
Mysql学习总结(11)——MySql存储过程与函数
查看>>
ubuntu增加swap空间
查看>>
命令 cd
查看>>
kafka集群扩容后的topic分区迁移
查看>>