クラスのプロパティ宣言と代入を1行で行う

4D 20 R5では、合理化されたプロパティ宣言により、変数代入のように、宣言と同時にプロパティを初期化できるようになりました。

この改善により、開発者はプロパティの宣言と初期化を1行で行えるようになり、コードの可読性が向上するとともにより効率化することができるようになりました。またこれにより、よりスムーズな統合が容易となり、初期化ブロックを個別に作成しなくてもよくなります。開発ワークフローが最適化され、インタープリターでもコンパイルモードでもコードの堅牢性が確保されるため、よりクリーンで保守性の高いコードベースが実現します。

これまでは、クラス・プロパティを作成する方法は1つしかありませんでした:

property <propertyName> : <type>

4D 20 R5からは、プロパティ宣言が強化されました。変数同様に、以下のように、プロパティの宣言と初期化を1行で行えるようになりました:

型の類推

property <propertyName> := <value>

ここでは、型は省略され、渡された値に基づいてコンパイラまたはインタープリタによって決定されます。コンパイルエラーを防ぐために、この方法は値、コマンド、メソッドから渡されるスカラー型の値の型に対してのみ使用することが推奨されます。

例:

//BLOB
property myBlob:=GetBlob()
//Boolean
property myBool:=True
//Null
property myNull:=Null
//Real
property myNum:=(569/2)
//Object
property myObj:={att1: 1}
//Text
property myText:="Hello"
//Collection
property myCol:=[1; 2; 3]
//Date
property myDate:=Current date
//Time
property myTime:=Current time
//Picture
property myPicture:=GetPicture()

// Properties must be declared before class constructor or functions. 
Class constructor

型宣言と初期化

property <propertyName> : <type> := <value>

変数宣言と同様に、プロパティは指定された型で作成され、渡された値で初期化されます。

この型宣言は、クラス属性、インタープロセス間変数、グローバル変数のようなプロパティを初期化する場合には使用する必要があります。このような場合に型を指定しないと、インタプリタやコンパイラは型を評価するも判断できず、そのため代わりにバリアント型を使用します。例:

property myAttribute:=JSON Parse(GetJson()).myAttribute
// インタープリターもコンパイラもJSON Parse(GetJson()).myAttributeの型を知りません。
// myAttribute はバリアント型として宣言されます。

4D 20 R5では、プロパティ宣言を1行で行うことで、初期化が効率化され、コードの読みやすさと効率が向上しました。この機能はドキュメントで詳しく説明されていますが、シームレスな統合を可能にし、開発ワークフローを最適化し、コードの堅牢性を保証します。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。