ethereumコミュニティーで、配列の途中のデータを削除して、全体を詰めたいのですがSolidityでどうやったらいいのですか?っていう質問があったので、いろいろと調べてみました。 結論としては、Solidityでは配列の要素を削除できません。 理由としてはgas代が予想できないほど膨れ上がる可能性があってなかなか難しいっていうのがわかりました。 ただ、gas代を無視すれば自分でそうした処理を書くことはできます。以降では実際に実装しながら理解したSolidityで配列の要素の削除が難しい理由を説明していきます。 なお、本記事で公開しているコードはいろいろな問題を含んでいますので実案件では利用しないでください。 1.普通に実装してみる 冒頭でも書きましたが、Solidity自体には配列の要素を削除するfunctionは用意されていません。ので自分で実装します。 一番単純なアルゴリズムとして