【小技】Chooseとコンパイラーの型指定
【小技】Chooseとコンパイラーの型指定
Chooseは,返り値の型が決まっていない,珍しい関数です。
http://doc.4d.com/4Dv15/4D/15.1/Choose.301-2684929.ja.html
そのような関数は,OB Get,JSON Parse,WA Evaluate JavaScript など,ごく少数しか存在しません。
http://doc.4d.com/4Dv15/4D/15.1/OB-Get.301-2686003.ja.html
http://doc.4d.com/4Dv15/4D/15.1/JSON-Parse.301-2686301.ja.html
http://doc.4d.com/4Dv15/4D/15.1/WA-Evaluate-JavaScript.301-2685017.ja.html
一方,入力パラメーターの型が決まっていなかったり,省略できたりするコマンドは,結構,たくさん存在します。
返り値の型が決まっていない関数をそのままコマンドの引数にした場合,コンパイラーがうまく意図を汲み取ってくれないことがあります。
たとえば,下記のコードは,第1引数のテーブルを省略している例ですが,Chooseの返り値が不明であるため,第2引数の数値(ウインドウタイプ)を文字列(フォーム名)に変換しようとしている,というエラーになってしまいます。
そのような時は,Stringを使用し,明示的に型が文字列であることを示すことでコンパイルエラーを避けることができます。
v11以降,文字列をStringに渡すことができます。
返されるのは,元の文字列ですが,これにより,汎用的なコードが記述しやすくなりました。
http://doc.4d.com/4Dv15/4D/15.1/String.301-2685399.ja.html
http://doc.4d.com/4Dv15/4D/15.1/Choose.301-2684929.ja.html
そのような関数は,OB Get,JSON Parse,WA Evaluate JavaScript など,ごく少数しか存在しません。
http://doc.4d.com/4Dv15/4D/15.1/OB-Get.301-2686003.ja.html
http://doc.4d.com/4Dv15/4D/15.1/JSON-Parse.301-2686301.ja.html
http://doc.4d.com/4Dv15/4D/15.1/WA-Evaluate-JavaScript.301-2685017.ja.html
一方,入力パラメーターの型が決まっていなかったり,省略できたりするコマンドは,結構,たくさん存在します。
返り値の型が決まっていない関数をそのままコマンドの引数にした場合,コンパイラーがうまく意図を汲み取ってくれないことがあります。
たとえば,下記のコードは,第1引数のテーブルを省略している例ですが,Chooseの返り値が不明であるため,第2引数の数値(ウインドウタイプ)を文字列(フォーム名)に変換しようとしている,というエラーになってしまいます。
- Code:
C_LONGINT($Window_Type_L;$Window_Ref_L)
$Window_Ref_L:=Open form window(Choose(true ;"value1";"value2");$Window_Type_L)
そのような時は,Stringを使用し,明示的に型が文字列であることを示すことでコンパイルエラーを避けることができます。
- Code:
C_LONGINT($Window_Type_L;$Window_Ref_L)
$Window_Ref_L:=Open form window(String(Choose(True;"value1";"value2"));$Window_Type_L)
v11以降,文字列をStringに渡すことができます。
返されるのは,元の文字列ですが,これにより,汎用的なコードが記述しやすくなりました。
http://doc.4d.com/4Dv15/4D/15.1/String.301-2685399.ja.html
miyako- 投稿数 : 468
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|