新しいコマンドを使えば、コードの中で数式を自由に使うことができます。数式をオブジェクトにカプセル化し、必要なときに呼び出せるようになりました。もう、コードをテキストで書く必要はありません。コマンドの中で数式を渡すだけでいいのです。コードがテキストでないため、シンタックスハイライトやコードエディタの他のすべての高度な機能の恩恵を受けることができます!これは素晴らしい追加機能です。
数式をオブジェクトにカプセル化する
という Formulaコマンドを使えば、数式をオブジェクトにカプセル化するのはとても簡単です。
$f:=Formula(ALERT("Hello world"))
もちろん、数式はオブジェクトにカプセル化されているので、オブジェクトのプロパティにカプセル化し、独自のカプセル化されたオブジェクトメソッドを作成することができます。
$f:=New object
$f .message:=Formula(ALERT("Hello world"))
$f .
message(
) // Display alert dialog box with the message "Hello world"
数式にパラメータを渡したい場合は、メソッドと同じように $1, $2 … を使用します。
$f:=New object
$f .message:=Formula(ALERT("こんにちは "+$1))
$f .message("ジョン")
// Display alert dialog box with the message "Hello John"
また、オブジェクトの属性の値を使用したい場合にも Thisコマンドで解決できます。
$f:=New object
$f .text:="Hello World"
$f .message:=Formula(ALERT(This.text))
$f .
message()
// Display alert dialog box with the message "Hello world"
最後に、メソッドを数式として使用することができます。
$person:=New object
$person .firstName:="John"
$person .lastName:="Smith"
$person .greeting:=Formula(Greeting )
$g :=$person.greeting("hello")
// $g:="hello John Smith"
$g:=$person.greeting("hi")
// $g:="hi John Smith"
コマンドを使えば Greeting メソッドを使用します。
$0:=$1+" "+This.firstName+" "+This.lastName
の使い方の例は、このHDIに掲載されています。 Formulaの使い方の例は、この HDI の中にあります。
計算式を呼び出す
また、数式オブジェクトを他のオブジェクトのプロパティとして設定せずに実行する場合は call() と apply() メソッドを使うことで、他のオブジェクトのプロパティとして設定することなく、数式オブジェクトを実行することができます。
$f:=Formula(ALERT(String($1+" "+$2))
$f .call(null; "Hello"; "world")
)
$f .apply(null;New collection ("Hello"; "world" //formula.apply object methods
文字列からオブジェクトに数式をカプセル化する
テキスト版の数式を使って、メソッドを作成する方法があります。 Formula from stringコマンドで実行できます。
$textFormula:=Request("Please type a formula")
)”)
If (ok=1)
$f :=Formula from string($textFormula)
ALERT ("Result = "+String($f.call ()
End if