提供:Japanese Scratch-Wiki
リスト(他のプログラミング言語では配列と呼ばれる)は、複数の情報を一度で取り扱うためのツールである。リストの中身は、1から始まる通し番号で管理される。
作成・削除・リスト名の変更
作成
ブロックパレットの「変数」カテゴリ内にある「リストを作る」を押すことで作成できる。
削除
ブロックパレット上で、(リスト::list)
を右クリックすると、メニューが表示される。そのメニューの「リスト『(リスト名)』を削除する」を選ぶと削除できる。
リスト名の変更
ブロックパレット上で、(リスト::list)
を右クリックすると、メニューが表示される。そのメニューの「リスト名を変更」を選ぶと変更できる。
大きさの変更
リストの右端の「=」の部分をマウスでドラッグすることで大きさを変更できる。そのため、タブレットではできない。
項目
リストの項目は、手動またはスクリプトで追加・変更・削除できる。
手動での編集方法
プロジェクトの編集中は、リストのステージモニターを使ってリストの内容を編集できる。
- リストに項目を追加する時は、左下の「+」ボタンを押す。
- 特定の位置の後に項目を挿入するには、項目を選択し、↵ Enterを押す。⇧ Shiftを押しながらすると、前に挿入できる。
- 項目を削除するには、項目を選択して、右にある「×」を押す。
- 次の項目へ移るには、Tab ⇆を押す。
- 前の項目へ移るには、Tab ⇆と⇧ Shiftを同時押しする。
読み込みと書き出し
読み込み

リストを右クリックして、「読み込み」を押すと、コンピュータからデータを読み込むことができる。

カンマ区切りのCSVファイルを読み込むときは、「どの欄を使いますか?」と問われるので、数値を入力する。
書き出し
「書き出し」を押すと、リストの情報を書き出すことができる。これは、すべての項目を、CRLF(\r\n)で区切ったものである。
項目のコピー
リストは、他のステージモニターと違い、項目のコピー(Ctrl+C)が可能である。要素の文字数が多すぎてはみ出てしまうときは、はみ出した分が省略して表示される。ドラッグしてコピーをしても、表示されている分しかコピーできない。しかし、マウスの左ボタンを3回クリックする「トリプルクリック」をすると、1つの要素に格納された文字列すべてを選択することができる。
リストブロック
- 詳細は「リストブロック」を参照
リストブロックは、データブロックの一部である。リストブロックには、スタックブロック7個、値ブロック4個、真偽ブロック1個の計12個のブロックがある。
[なにか] を [リスト v] に追加する
[リスト v] の (1) 番目を削除する::list
[リスト v] のすべてを削除する::list
[リスト v]の(1)番目に[なにか]を挿入する::list
[リスト v]の(1)番目を[なにか]で置き換える::list
リスト [リスト v] を表示する
リスト [リスト v] を隠す
(リスト::list)
([リスト v] の (1)番目::list)
([リスト v]中の[なにか]の場所::list)
([リスト v] の長さ::list)
<[リスト v] に [なにか] が含まれる>
サイズ制限
Scratch 2.0のサイズ制限
![]() |
この項目には、最新バージョンのScratchには存在しない機能について書かれています。現在は使うことができないので、注意してください。 |
Scratch 2.0では、リスト1項目に入るのは10240文字までであった。項目数は無制限。
Scratch 3.0のサイズ制限
Scratch 3.0では、リストには200,000個の制限がある。
“ | We did some research and found that 200K list items was sufficient for > 99.999% of all Scratch projects. The limit is to prevent projects with large lists from creating memory pressure that could cause Scratch 3.0 to crash on lower-powered devices (such as mobile phones, tablets, Raspberry Pis, etc). | ” |
– thisandagain, [1] |
日本語参照訳: 「私たちの調査により、Scratchプロジェクトの99.999%以上はリストの項目数が200,000未満であることがわかった。この制限は、プロジェクトの巨大なリストで、メモリーの少ないデバイス(携帯電話、タブレット、Raspberry Pi、その他)でのクラッシュを防ぐためである。」
その代わり、リスト1項目に対しては、制限がない。
なお、リストのサイズ制限は、200,001行以上を含むファイルを読み込んだり、ステージモニターで+ボタンや↵ Enterキーを押して編集したり、またはプロジェクトのJSONファイルを書き換えることにより、回避できる。ただし、その場合は一部のリストブロックが動作しなくなる。
使用例
リストは、次のような目的で使われることが多い。
- 計算
- 文字列の暗号化
- 複数の値を記憶する
- データの保存
クラウドリスト
- 詳細は「クラウドリスト」を参照
クラウドリストは、Scratch 2.0のα・β版の実験的な機能だった。しかし、現在は廃止されている。クラウドリストの値はサーバーに保存された。現在、クラウド変数の制限のため、クラウドリストの多くは使えない。
キャスト
- 詳細は「キャストの規則」を参照
リストの値を返すブロックは、その内容に応じてリストを数値や文字列にキャストする。それに対し、リストの一項目を返す() の () 番目ブロックは、キャストを自動的に行わない。このため、リストは任意の型の項目を保持できる。
提案
多くの人が、リスト [リスト v] を表示する
とリスト [リスト v] を隠す
の追加を望んでいた。これは、Scratch 2.0で追加された。
リストの中にリストを含める、二次元配列も過去に提案されたが、これは却下された。[2]
バグ
[リスト v] の (1) 番目
と[リスト v] 中の [なにか] の場所
の2つの値ブロックは、真偽値を入れる場所に入れることができる。0ならfalse、0以外ならtrueとなる。
もう一つのバグ
変数を作り、その変数の名前と全く同じ名前のリストをつくる。 すると、変数を右クリックすると出てくるメニューがリストのメニューと同じものになる。