提供:Japanese Scratch-Wiki

このきじは ひらがなでよめます。ひらがなでよむ
リストの例
Scratch 3.0でのリストの例

リスト(他のプログラミング言語では配列と呼ばれる)は、複数の情報を一度で取り扱うためのツールである。リストの中身は、1から始まる通し番号で管理される。リストブロックは、データブロックの一部である。

リストブロック

詳細は「リストブロック」を参照

リストブロックは次のスタックブロック7個、値ブロック4個、真偽ブロック1個の計12個のブロックがある。

項目

空のリスト
空のリスト (3.0)

項目は、手動またはスクリプトで追加、変更、削除できる。

手動での編集方法

プロジェクトの編集中は、リストのステージモニターを使ってリストの内容を編集できる。

  • リストに項目を追加する時は、左下の「+」ボタンを押す。
  • 特定の位置の後に項目を挿入するには、項目を選択し、↵ Enterを押す。⇧ Shiftを押しながらすると、前に挿入できる。
  • 項目を削除するには、項目を選択して、右にある「×」を押す。
  • 次の項目へ移るには、Tab ⇆を押す。
  • 前の項目へ移るには、Tab ⇆⇧ Shiftを同時押しする。

読み込みと書き出し

CSV読み込み

リストを右クリックして、「書き出し」を押すと、リストの情報を書き出すことができる。これは、すべての項目を、CRLF(\r\n)で区切ったものである。「読み込み」を押すと、そのデータを読み込むことができる。

Warning
警告:
読み込んだデータは上書きされる。

カンマ区切りのCSVファイルを読み込むときは、「どちらのカラム(列)を取り込みたいですか?」と問われるので、数値を入力する。

サイズ制限

Scratch 2.0のサイズ制限

Archive.png この項目には、最新バージョンの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ファイルを書き換えることにより、回避できる。ただし、その場合は一部のリストブロックが動作しなくなる。

使用例

有名な例は以下の通りだ。

  • 計算
  • 文字列の暗号化
  • 複数の値を記憶する
  • データの保存

コピペと書き出し機能

リストは、他のステージモニターと違い、項目のコピー(Ctrl+C)が可能である。要素の文字数が多すぎてはみ出てしまうときは、はみ出した分が省略して表示される。ドラッグしてコピーをしても、表示されている分しかコピーできない。しかし、マウスの左ボタンを3回クリックする「トリプルクリック」をすると、1つの要素に格納された文字列すべてを選択することができる。

クラウドリスト

詳細は「クラウドリスト」を参照

クラウドリストは、Scratch 2.0のα・β版の実験的な機能だった。しかし、現在は廃止されている。クラウドリストの値はサーバーに保存された。現在、クラウド変数の制限のため、クラウドリストの多くは使えない。

キャスト

リストは真偽値の「true」を保管しているため、数値型にキャストすると1となる。もしこれが文字列型であれば、キャストすると0になる。
詳細は「キャストの規則」を参照

リストの値を返すブロックは、その内容に応じてリストを数値や文字列にキャストする。それに対し、リストの一項目を返す() の () 番目ブロックは、キャストを自動的に行わない。このため、リストは任意の型の項目を保持できる。

提案

多くの人が、リスト [リスト v] を表示するリスト [リスト v] を隠すの追加を望んでいた。これは、Scratch 2.0で追加された。

リストの中にリストを含める、二次元配列も過去に提案されたが、これは却下された。[2]

リストの大きさを変える 

広げるためには、右端の「=」の部分をマウスでドラッグして拡大する。そのため、タブレットではできない。

バグ

値ブロックを真偽値を入れる場所に入れる

[リスト v] の (1) 番目[リスト v] 中の [なにか] の場所の2つの値ブロックは、真偽値を入れる場所に入れることができる。0ならfalse、0以外ならtrueとなる。

もう一つのバグ 
リストと変数のバグ

変数を作り、その変数の名前と全く同じ名前のリストをつくる。 すると、変数を長押しすると出てくるメニューがリストのメニューと同じものになる


出典

関連項目

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。