Dialog choice の戻り値に注意

記事作成日:2022/02/20

「Dialog choice」 は、ユーザーに複数に選択肢の中から、1つ、もしくは1つ以上の選択を要求することができるブロックです。

以下の画像は、選択と複数選択の例です。

単一選択

複数選択

単一の選択ダイアログでは、選択した瞬間にファイバーの進行が再開されます。

複数選択ダイアログでは、選択した段階ではダイアログが閉じられることはなく、決定(OK)を押すか、キャンセルする事によって、ファイバーの進行が再開されます。

選択肢を設定するには

選択肢は、Array、または、Dictionary で定義することができます。

Array の場合

Choice =["選択1", "選択2", "選択3"]

Dictionary の場合

Choice = {"s1": "選択1", "s2": "選択2", "s3": "選択3"}

Dictionary では、値(Value) の部分が選択肢として表示されます。

キー(Key) は、値(Value)の選択肢が選択されたキー(Key)が結果として出力されます。

{Key: Value}

選択されたアイテムを取得するには

Array の場合

単一選択肢 の場合

Choice = ["選択1", "選択2", "選択3"]

選択されたものが “選択2” の場合は、戻り値が次にようになります。

= [1]
            

配列の中に選択されたインデックスが出力されます。

配列であることに注意する必要があります。


複数選択肢 の場合

Choice = ["選択1", "選択2", "選択3"]

選択されたものが “選択1” と “選択3” の場合は、戻り値が次にようになります。

= [0, 2]
            

Dictionary の場合

単一選択肢 の場合

Choice = {"s1": "選択1", "s2": "選択2", "s3": "選択3"}

選択されたものが “選択3” の場合は、戻り値が次にようになります。

= ["s3"]
            

配列の中に選択されたインデックスが出力されます。

配列であることに注意する必要があります。


複数選択肢 の場合

Choice = {"s1": "選択1", "s2": "選択2", "s3": "選択3"}

選択されたものが “選択1” と “選択2” の場合は、戻り値が次にようになります。

= ["s1", "s2"]
            

まとめ

Dialog choice の結果出力にご用心

Dialog choise の単一選択の場合、結果は一つだけに限定されるので、うっかり結果が配列であることを忘れてしまうことがあります。

本来は、[2] のように配列として出力されているものを、
うっかり、 2 として勘違いを起こしてしまうんです。

そうしてしまうと、途中で思いどおりの動作ができなくなり、長い時間(運がいいと短い時間)迷宮入りしてしまうことがあるのでご注意ください。


インデックスに戻る
Automate 覚書のホームに戻る
このサイトのホームに戻る