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

Deeplからの自動翻訳

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()

宣言された型と初期化

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

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

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

property myAttribute:=JSON Parse($myJson).myAttribute
// The interpreter and the compiler don't know the type of JSON Parse($myJson).myAttribute.
// $myAttribute is a declared as variant

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

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