solidity中一个很常见的字符串数组string array问题

简介: 我遇到了一个很常见的字符串数组string array问题,不能很好地解决。问题是这样我必须把任意长度的字符串传递给一个solidity智能合约。

我遇到了一个很常见的字符串数组string array问题,不能很好地解决。

问题是这样我必须把任意长度的字符串传递给一个solidity智能合约。

我觉得这样就可以:

function setStrings(string [] row)

但实际上不太对。

这里有一个solidity的限制,原因是String字符串基本上是任意长度的byte array字节数组(即byte[]),因此String []是二维字节数组(即byte[][])。根据solidity的说法,二维数组作为参数还不支持。

智能合约的函数可以接受二维数组吗?

这还没有实现外部调用和动态数组——只能使用一维的动态数组。

解决这个问题的一个办法是,如果你知道所有的字符串的最大长度(在大多数情况下都有可能),那么可以这样:

function setStrings(byte[MAX_LENGTH][] row) {...}

也可以尝试将数组元素转换为字节字符串,然后将该字节串反序列化为函数内的数组。这样做比较昂贵的,如果你没有选择的话。

原文:http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/3/

另外推荐一些之前的教程:

  • python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。
  • web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
相关文章
|
26天前
|
存储 缓存 测试技术
CMake String函数:如何巧妙地在cmake中操作字符串
CMake String函数:如何巧妙地在cmake中操作字符串
60 0
|
2月前
|
JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(下)
一个数组的元素可以是另外一个数组,这样就构成了多维数组(Multi-dimensional Array)。
|
2月前
|
存储 XML 缓存
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
24 0
|
5天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`'1.2,2,3,4,5'`)转换为对象数组。通过使用`split(',')`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
24天前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
18 6
|
26天前
|
SQL Java
使用java中的String类操作复杂的字符串
使用java中的String类操作复杂的字符串
8 0
|
1月前
String类及相应的字符串操作方法
String类及相应的字符串操作方法
52 1
|
1月前
|
存储 程序员 C++
在C++语言中string-vector的字符串作用类型
在C++语言中string-vector的字符串作用类型
9 0
|
1月前
|
存储 安全 Java
36、Java 中的 String、StringBuilder、StringBuffer、字符串常量池和 intern 方法
36、Java 中的 String、StringBuilder、StringBuffer、字符串常量池和 intern 方法
29 0
|
2月前
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
32 0