問題一覧に戻る
中級データ型
問題40: 配列のスライス

Solidityの配列スライスを学習します - calldata配列から部分配列を抽出します。スライス構文array[start:end]はstartからend-1までの要素を返します。endを省略(array[start:])するとstartから配列の終わりまでを返します。この機能はcalldata配列でのみ動作し、ストレージやメモリでは使用できません。スライスはコピーではなく参照を返すためガス効率的です。ページネーション、バッチ処理、データのサブセット操作に最適です。スライスの理解は大きな配列を扱う外部関数での効率的なデータ操作に不可欠です。

pragma solidity ^0.8.0;

contract ArraySlice {
// 配列スライスを取得
function getSlice(uint256[] calldata data)
external pure returns (uint256[] ) {
return data[1:3];
}

// 指定位置から最後まで
function getFromIndex(uint256[] calldata data, uint256 start)
external pure returns (uint256[] calldata) {
return data[:];
}
}