EasyLanguageの文法などに関する小ネタです。
目次
変数宣言(Vars)は複数箇所で可能
変数を宣言するVars(VarやVariablesなども可)ですが、実はコード内の複数個所で記述できます。好みの問題もありますが、使う箇所が限定されるような変数は、使う箇所の近くで宣言するとより見やすいコードになるかも。 #EasyLanguage
— しゅん@ELプログラマー (@eltraders) 2017年9月26日
真偽変数(True/False)
EasyLanguageでも「真偽変数」というものが使えます。いわゆるBool型で、真(true)か偽(false)の2つしか入らない変数です。Ifで使う条件式を格納する事もできるので、うまく使えば複合条件を見やすく書くこともできます。 #EasyLanguage
— しゅん@ELプログラマー (@eltraders) 2017年9月29日
InfiniteLoopExceptionが発生した時は?(解決済み)
For構文でInfiniteLoopException(=無限ループ検出さ)エラーが発生したんですが、これって処理時間で判定されるみたいですね。処理が速くなるようコードを見直したら発生しなくなりました。どこかで閾値増やしたりとかできるのかな? #EasyLanguage
— しゅん@ELプログラマー (@eltraders) 2017年10月13日
↓ その後、解決。
もう解決済みかもしれませんが、コードの最初に
[InfiniteLoopDetect = FALSE]
を付けると、無限ループ検出機能を無効にできるみたいです~
— しゅん@ELプログラマー (@eltraders) 2017年10月30日
三項演算子も使える
単純なIFを短く書ける三項演算子。戻り値によってIFF(数値)/IFFString(文字列)/IFFLogic(真偽値)とそれぞれ用意されています。簡単な条件なら1行で書けるので、例えばレーダースクリーンで数値や判定結果を文字表示する時など便利かも? #EasyLanguage pic.twitter.com/JuZ1XczU2G
— しゅん@ELプログラマー (@eltraders) 2017年10月20日
Region でコードを折りたたみ
コードの実行には影響しませんが、コードを #Region ~ #EndRegion で囲むと、エディタ上で囲んだ部分のコードを折りたためるようになります。コードが長くなってきた場合は、これで整理すると見やすくなるかも。 #EasyLanguage
— しゅん@ELプログラマー (@eltraders) 2017年10月26日
AsTypeで型指定
オブジェクト指向ELで開発していると、型変換を行なうAsTypeはよく利用することになるかもしれません。例えばイベントハンドラのsenderには発生したオブジェクトが入っているため、AsTypeすることでメソッドなども使用可能になります。 #EasyLanguage #OOEL
— しゅん@ELプログラマー (@eltraders) 2017年10月28日
(2017.11.20 追記)
指定条件を満たした時に一度だけ実行するOnce構文
Once構文は「指定条件の時に一度だけ」実行する命令を記述できます。If構文と同じような形で、 Begin~End; を書かない方法と書く方法があります。後者の場合はBegin ~ End の中に複数行の命令を記述できます。 #EasyLanguage pic.twitter.com/TmBrn7sCdX
— しゅん@ELプログラマー (@eltraders) 2017年11月15日
For構文で降順にしたい場合はdownto
(これは不要でした)
For構文で降順(9,8,..,1,0 など)を扱いたい場合。EasyLanguageのFor構文は昇順のみのようで、For X = 9 to 0 とすると上手くいきません。解決策としては添付コードのようにもう1つ変数を用意して【カウントしたい最大値 – 現在のカウント】とするのが分かりやすいかなと思います #EasyLanguage pic.twitter.com/cl72ZKKsJS
— しゅん@ELプログラマー (@eltraders) 2017年11月17日
(こちらでOK)
先ほどの投稿(Forの降順)ですが、toではなくdowntoでいけました。僕の勘違いだったので無視してください m(__)m (@mukimuki_monさん、ありがとうございます) #EasyLanguage
— しゅん@ELプログラマー (@eltraders) 2017年11月17日