製品

オブジェクトとコレクションの簡単な参照比較

オブジェクトは4DランゲージとQodlyにとって不可欠なものとなりました。

しかし、このタイプの変数を宣言するときは、実際には参照を定義していることになります。では、2つのオブジェクトが実際には1つで、同じ参照を共有しているかどうかを知るにはどうすればいいのでしょうか?

4D 20 R6から、オブジェクト参照の比較はシンプルになりました。それには、= と # 演算子を使うだけです!

このブログ記事では、これらの演算子と、オブジェクトが同じ参照を共有しているかどうかを判断する方法について説明していきます。詳しく見ていきましょう!

製品 blank

コンポーネント間でクラスを使用する

Deeplからの自動翻訳

コンポーネント開発者は、他の既存コンポーネントのクラスを利用する必要が頻繁にあります。

4D 20 R6では、コンポーネントに名前空間が宣言されている場合、そのクラスは、cs.namespaceを介して、ホストプロジェクトにロードされたすべてのコンポーネントからアクセスできるようになりました。

製品 blank

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

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

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

製品 blank

合理化されたメソッドの引数宣言

効率的なコーディング・プラクティスを追求するため、4D デベロッパーは一般的にコンパイルパスの設定をおこない、シンタックスや型チェックを強化することで、コンパイルモードでのコード実行時のエラーを最小限に抑えています。そこで、 #DECLARE メソッドプロトタイプを使用することで、どのように時間の節約に繋がり、コードの安全性が向上するかを見てみましょう。

製品 blank

可変長引数関数の書き方への新しいアプローチ

多くの方は、不定数の引数を受け取ることができるメソッドや関数を使用することに慣れていることでしょう。こういった関数は一般的に可変長引数関数または可変長関数などと呼ばれます。

4D v20 R3 では、皆さんの開発のしやすさを向上させるために、エリプシス(省略記号)を導入することで、これらのメソッドの宣言を合理化し、コードをよりわかりやすく、作業しやすくしました。

製品 blank

更新された Print form & FORM LOAD コマンドを紹介

4D v16 R5 では、DIALOG コマンドが大幅に改良され、オブジェクト型新しいパラメーター “formData” を渡すことができるようになりました。この新機能が 4Dデベロッパーの皆様に好評であることを聞いて、とても嬉しく思います。

4D v20 では、もう 2つのコマンドがアップグレードされました: Print formFORM LOAD です! そのメリットは、同じように大きいでしょう。引数として渡されたオブジェクトは、印刷されるフォームや、メモリにロードされるフォームで直接利用することができます。

製品 blank

未定義値との比較

ORDA やクラスなどのオブジェクトが登場して以来、未定義 (undefined) 値を扱うことが多くなりました。

もっと簡単に扱えるようにしてほしいという声もあり、v20 からは、どんな型の値でもエラーなしに未定義値と比較できるようにしました。

製品 blank

integer32 よりも大きな整数をサポート

Deeplからの自動翻訳

Realsは正確でないことが知られていますが、小数点を使わない限り(=整数)、非常に大きな数でも100%の精度で計算できます。

53ビットまでの数、正確には [-(2^53)+1, (2^53)-1] つまり -9,007,199,254,740,992 から 9,007,199,254,740,992 までが正確に表現されます。