今回はプログラミングに必須の変数、リスト、マップについて解説します。
変数(Variables)
変数とは、値を格納するための容器のようなものです。
変数を使うことで、プログラム内で様々なデータを簡単に保持し、操作することができます。
変数には、数値、文字列、リストなど、さまざまな種類のデータを格納できます。
変数を扱う場合には、Variablesグループの中のブロックを使います。

変数の使い方
変数を扱う場合、まず変数を作る(Create)必要があります。
Create variableをクリック。

下記のダイアログが開きますので、テキストボックスに変数の名前を入力してOKをクリックすると、UIFlowの中で変数を使うことが可能になります。

変数の例

数値を格納する場合には、Math から数値入力用のブロックを使用します。
整数を格納する場合

この例の場合 変数 number には、10 が格納されます。
小数点の数値を格納する場合

この例の場合、変数 number には、4.5 が格納されます。
文字列を格納する場合には、Textグループから文字入力用のブロックを使用します。


この例の場合 変数 text には hello が格納されます。
変数の使用方法
変数を使用して、計算を行ったり、文字列を連結したり、リストから特定の要素を取り出すことができます。
数値計算の例

文字列連結の例

リスト(List)
リストとは、複数の要素を一つの変数に順序つきで格納できるデータ構造です。
リストは非常に柔軟で、異なるデータ型の要素を同じリスト内に格納することができます。
例えば、整数、浮動小数点数、文字列、さらには他のリストも含めることが可能です。
リストの作成
空のリスト作成
空のリストを作成する場合、このブロックを使用します。


変数に代入することで空のリストを生成できます。
初期値ありのリスト作成
通常は、こちらのブロックでリストを生成します。

ブロック左上の歯車アイコンを押すとダイアログが開きます。
入力する数を増減することができます。

整数のリスト

変数 list には、[0, 2, 4] が格納されます。
文字列のリスト

変数 list_textには、['apple', 'orange', 'mango']が格納されます。
異なるデータ型を持つリスト

変数 mixedには、異なるデータ型を持つリスト [2, 'yellow', 4.5] が格納されます。
リストへのアクセスと操作
リストの各要素にアクセスするには、インデックスを使います。
リストの要素を取得・削除

操作する対象のリスト、動作、インデックスを指定することでリスト内の要素にアクセスします。
動作には以下の3種類があります。
| get | インデックスで指定した要素を取得します。 |
| get and remove | インデックスで指定した要素を取得後、その要素を削除します。 |
| remove | インデックスで指定した要素を削除します。 |
注意点
インデックスは1から始まります。(pythonの場合、先頭の要素のインデックスは0)
リストの要素を取得

list [0, 2, 4] の1番目の要素を取得して、first_numberに格納します。
この場合、first_number は 0 となります。
リストの要素を削除

list [0, 2, 4] の2番目の要素を削除します。
この場合、list は [0,4]となります。
リストの要素に値を格納・要素を追加

操作する対象のリスト、動作、インデックスおよび値を指定することで、リストの要素を操作します。
動作には以下の3種類があります。
| set | インデックスで指定した要素に値を格納します。 |
| insert | インデックスで指定した要素を挿入または追加します。 |
リストの要素に値を格納

list [0, 2, 4] の1番目の要素に『2』を格納します。
この場合、list は [2,2,4]となります。
リストの要素に値を挿入

list [0, 2, 4] の2番目の要素に『1』を挿入します。
この場合、list は [0,1,2,4]となります。
リストの要素に値を追加

list [0, 2, 4] の一番後ろに『6』を追加します。
この場合、list は [0,12,4,6]となります。
indexの設定を『first』にすると、リストの先頭に値を追加します。
マップ(Map)
マップは辞書とも呼ばれます。
マップ(辞書)は非常に柔軟なデータ構造であり、データを管理するための基本的な方法の一つです。
キーと値のペアを使うことで、複雑なデータを効率的に扱うことができます。
マップの作成
マップを生成

マップは、キー(key)と値(Value)のペアを格納するデータ構造です。
マップは、キーを使用して値に迅速にアクセスするための効率的な方法を提供します。
各キーはユニークであり、それぞれ一つの値に対応しています。
マップを生成

この例では、3つのキー("name", "age", "city")とそれぞれの値("Yoshida", 25, "Tokyo")のマップ変数 map が生成されます。
値を取得

操作対象のマップとキーを指定して、そのキーに対する値を取得します。
この例では name は Yoshidaとなります。
マップの変更・追加・削除
マップの変更・追加・削除
変更・追加


削除

マップの全削除

マップの変更・追加
追加、削除を行う場合は、
または
のブロックを使います。
2つのブロックはどちらを使ってもOK。
新しいキーを指定した場合は追加。
既存のキーを指定した場合は変更となります。

この場合、既存のキー name の値を変更するため、 キーnameの値が"Yamada"に変更されます。

この場合、新しいキー "tel" と値 "0123" がマップに追加されます。
変数 mapは、4つのキー("name", "age", "city","tel")とそれぞれの値("Yoshida", 25, "Tokyo","0123")となります。
マップの削除
削除を行う場合は、
のブロックを使います。

既存のキー"name"が削除されます。
変数 mapは、2つのキー("age", "city")とそれぞれの値( 25, "Tokyo")となります。

クリアブロックを使うと変数 map はクリアされます。
マップの値を取得
マップの値を取得

マップの値を取得するには、
を使用します。
マップの値を取得
3つのキー("name", "age", "city")とそれぞれの値("Yoshida", 25, "Tokyo")を持つマップ変数 map がある場合。

変数 map の辞書から、キー"name"の値を取得します。
この場合、label0に”Yoshida"が表示されます。
辞書にないキーを指定した場合エラーとなるので注意
map内にキーが存在するかどうか確認するには、
を使います。

変数mapの中に、キー"name"がある場合は True 、キー”name"がない場合は False となります。
エラーを回避するためには、マップの値にアクセスする前に、キー存在のチェックが必要となる場合があります。
まとめ
UIFlowで扱う主なデータ構造 変数、リスト、マップ(辞書)について解説しました。
- 変数:プログラムの基本的な構成要素で、データを保持・操作するために不可欠です。
- リスト: 複数の要素を効率的に管理し、順序付けてアクセスする必要がある場合に重要です。
- マップ(辞書): キーに基づいてデータを効率的に検索・管理する必要がある場合に重要です。
これらのデータ構造はUIFlowプログラミングの基礎であり、これらを理解し使いこなすことで、より複雑なプログラムを作成することができます。