Solidityでstring[]を利用できないケース
Solidityでは、引数や戻り値でstring[]を利用できません。
stringは文字数が不定のバイト列であり、string[]は本質的には二次元配列byte[][]となります。Solidityでは計算にGasを使用するのですが、この不定のバイト数を扱う場合メモリ領域の最適化ができません。そのため、現在Solidityでstring[]の戻り値、引数はサポートされていません。
Solidityでstring[]を利用する方法
Experimental Feature
ですが、以下の記述を記入します。
example.sol
pragma experimental ABIEncoderV2;
pragma
キーワードは特定のコンパイラの機能を有効にする記述です。
実験中の仕様ですが、ABIEncoderV2を利用することでstring[]をコンパイル可能となります。しかし、まだ十分にテストされておらず、まだ最適化もされていないためgas代金が多少高くなってしまう可能性があるので注意してください.