コードの中で$1、$2、$nの変数を使うと、コードが読みにくくなるだけでなく、人間の脳はこれらの変数が何に対応しているかを覚えるのが難しいため、混乱が生じる可能性があります。解決策は、わかりやすい名前の変数を作り、その変数に$1、$2、$nの値を代入することです。
4D v18 R5では、宣言時にパラメータに名前を付けることができるようになったという朗報があります。
- プロジェクトメソッド
- トリガー
- データベースメソッド
- フォームメソッド
- クラスのコンストラクタ
- クラスの関数
それでは、見てみましょう。
4D v18 R4 では、変数の宣言に新しいシンタックスを紹介しました。
var $name :Text
var $birthdate :Date
var $file :4D.File
メソッドと関数の新しい構文は非常によく似ています。
クラスに対する新しい宣言
関数名の後に、セミコロンで区切られた様々な入力パラメータを括弧で囲んで追加します。
Class Constructor($firstname:Text;$lastname:Text; $birthdate:Date)
This .lastNamecity:=$lastname
This .firstName:=$firstname
This .birthdate:=$birthdate
Function setAdress ($streetNumber:Text;$streetName :Text;$:Text)
This .streetNumber:=$streetNumber
This .streetName:=$streetName
This .city:=$city
出力パラメータは、入力パラメータと同じように「>」記号、名前、型を追加するだけです。
Function getFullname -> : := . +" "+ ( . ) ( : ) -> : :="@"+ .+":"+$fullname Text
$fullnameThisfirstNameUpperThislastName
Function sendMessage$text Text $message Text
$messageThisfirstname$text
メソッドの新しい宣言
同じ原理で、新しいキーワードを使ったメソッドもあります。 #DECLARE.
- highlightRow” プロジェクトメソッドを使った例です。
#DECLARE($listboxName:Text;$rowNum:Integer)
LISTBOX SELECT ROW (*;$listboxName;$rowNum)
- 例として On Web Authenticationデータベースメソッドを使用した例です。
#DECLARE
($url:Text;$header:Text;\
$BrowserIP :Text;$ServerIP:Text;\
$user :Text;$password:Text)\
->$RequestAccepted:Boolean$entitySelection :=ds.User.query("login=:1";$user)
// Check hash password...
// ...
デバッガ
パラメータの名前は、デバッガーのコールチェーンペインにも表示されます。以下は、クラス関数の例です。
ボーナス
この新しい構文を使うのにもう一つ理由が必要な場合は、下の画像を見てください。そうです。関数の宣言は、4Dコマンドの場合とまったく同じようにステータスバーに表示されます。