提供:Japanese Scratch-Wiki

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

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

作成・削除・リスト名の変更

作成

ブロックパレットの「変数」カテゴリ内にある「リストを作る」を押すことで作成できる。

削除

ブロックパレット上で、(リスト::list)を右クリックすると、メニューが表示される。そのメニューの「リスト『(リスト名)』を削除する」を選ぶと削除できる。

リスト名の変更

ブロックパレット上で、(リスト::list)を右クリックすると、メニューが表示される。そのメニューの「リスト名を変更」を選ぶと変更できる。

大きさの変更

リストの右端の「=」の部分をマウスでドラッグすることで大きさを変更できる。そのため、タブレットではできない。

項目

空のリスト

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

手動での編集方法

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

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

読み込みと書き出し

読み込み

CSV読み込み (Scratch 2.0)

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

Warning
警告:
データを読み込む前のリストの内容は上書きされる。

カンマ区切りのCSVファイルを読み込むときは、「どの欄を使いますか?」と問われるので、数値を入力する。

書き出し

「書き出し」を押すと、リストの情報を書き出すことができる。これは、すべての項目を、CRLF(\r\n)で区切ったものである。

項目のコピー

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

リストブロック

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

リストブロックは、データブロックの一部である。リストブロックには、スタックブロック7個、値ブロック4個、真偽ブロック1個の計12個のブロックがある。

サイズ制限

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

使用例

リストは、次のような目的で使われることが多い。

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

クラウドリスト

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

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

キャスト

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

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

提案

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

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

バグ

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

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

もう一つのバグ

リストと変数のバグ

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


出典

関連項目

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