Solidityの文字列配列 質問する

Solidityの文字列配列 質問する

Solidity ではエレガントかつ効率的に解決できないと思われる、かなり一般的な問題に遭遇しました。

任意の長い文字列の任意の長い配列を Solidity コントラクトに渡す必要があります。

私の考えでは、それは次のようなものになるはずです

function setStrings(string [] row)

しかし、それはできないようです。

この問題をどうすれば解決できますか?

ベストアンサー1

これはSolidityの制限であり、その理由は、 はstring基本的に任意の長さのバイト配列(つまりbyte[])であり、string[]2次元のバイト配列(つまりbyte[][])も同様であるためです。Solidity リファレンスただし、パラメータとしての 2 次元配列はまだサポートされていません。

コントラクト関数は 2 次元配列を受け入れることができますか?

これは外部呼び出しと動的配列にはまだ実装されていません。動的配列は 1 レベルしか使用できません。

この問題を解決する 1 つの方法は、すべての文字列の最大長を事前に知っている場合 (ほとんどの場合は可能です)、次のようにすることです。

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

おすすめ記事