UDFの構造『ColdFusionの言語で250以上の関数があります。これには、関数の多くは他の種類の文字列操作関数は、配列の機能、構造、機能しています。関数は、この多種多様な場合でも、しかしある場合は、物事は、ColdFusionの組み込み関数この資料では、唯一の方法と併用するCFScriptを使用するようにCFScriptを使用する方法について説明しないことはできませんが、独自の関数を定義する必要がありますユーザー定義関数。ユーザー定義関数、またはUDF定義されてCFScriptのは、『CFML、または2つの組み合わせで構築することができます。次の部品がどのようにCFScriptを使用してUDFを構築する方法を説明します。彼らはJavaScript、Java、および他の多くのプログラミング言語は、既にご存知かもしれませんが機能の作成を模倣CFScriptのUDFは、とても自然です。一般的に、関数は一つまたは複数の引数を受け取ると、単一の結果を返します。いくつかの機能(たとえば、ColdFusionのNow()関数)が、引数を取らない、ほぼすべての関数の結果を返すか。基本的なUDFをCFScriptを使用して構築に見えるは次のとおり:
唯一の4つすべての関数に必要な関数のキーワードは、関数の名前は、名前の後に括弧、および関数の体の周りの中括弧で囲みます。ただし、returnステートメントは、技術的に省略され、戻り値としては、このステートメントは、関数呼び出しのコードに返される結果を表すか、関数、本当に便利になりますです。我々だけでは、任意のColdFusion関数のように構築するように作成した関数を呼び出す次のとおり:
次のように我々はローカル変数を定義することによって、私の関数を展開することができます: 関数GetCurrentTime()(ヴァールszTime = TimeFormat(今()、"時間:mm:ssのtt"); szTimeを返す;) は、次の部分で、これはvarキーワードを詳しく説明する。次のように我々はまた関数への変数の宣言とreturn文の間に、コードを追加することができます: 関数GetCurrentTime()(ヴァールszTime = TimeFormat(今()、"時間:mm:ssのtt"); szTime = ReplaceNoCase(szTime、""、"午前中")午前; szTime = ReplaceNoCase("pm"をszTime日の夜"")で; szTimeを返す;) このUDFは、任意の引数をとりません非常に単純な例です。今すぐ詳細varには見ています。ヴァール宣言は、関数にローカルの変数です。もし、varを使用していない、例えば、我々は次のようでした:
後にmyFn()、myVarが関数の外側でコードを入手可能です呼び出します。ため、任意の変数CFScriptの内部で定義さそれはまた、『CFMLリファレンス』を利用可能です。誤って作成するのでことができるこれは非常にずさんなプログラミングまたは上書きする場合に影響を与える意図されていない変数myVarにmyFnにローカルを維持するには()のようなことは、関数の使用は、VARは外部に漏洩することはできません次のとおり:
さて、myVarが外myFnを使用しようとすると()を正確にどんなことをしたいが、エラーをスローします。すべての変数はvarを使用して作成された初期化する必要があります場合はされていませんColdFusionでエラーがスローされます。との通知は、あまりにも、その場合には、var置くことはできません任意の場所には非常には、関数宣言の先頭ではなく、他のキーワードです。関数は、単一の値を返す、次の例に示すように: 関数myFn()(戻りTimeFormat(今()、"時間:mm:ssのtt");) すぐにCFScriptのreturn文を検出する限り、ColdFusionでは、関数の実行を停止し、呼び出し元のコードにreturnキーワードを次の値を返します。また、条件付きでは、次のコードのように異なる値が異なる状況に基づいて返すことができます: 関数myFn()(場合(IsDefinedを("Client.myVar"))(戻りClient.myVar;)他(戻りTimeFormat(今()、"時間:mm:ssのtt");)) 関数内のすべての制御パスの値を返す必要がありますか、または矛盾する結果を得る。ベストプラクティスは、そのため、デフォルトの戻り値を定義するとして、あなたの関数宣言の中では1つだけ、returnステートメントを使用して次のとおり: 関数myFn()(ヴァール結果= TimeFormat(今()、"時間:mm:ssのtt");場合(IsDefinedを("Client.myVar"))(結果= Client.myVar;)を返す結果;) ほとんどの関数は、次の例に示すように1つまたは複数の引数を取ります:
引数の名前は、関数宣言の後に括弧内のリストで定義されています。後でこの記事の引数の高度な使用してください。前述の例では、位置引数を使用すると、その関数の呼び出しで最初の引数は、最初の引数に渡された意味関数では、コールになった関数内で2番目のように2番目。場合は、別の順序でそれらを渡すためにする場合も呼び出しでは、のように引数名が次のとおり:
これは少し読みにくいですこの構文は、広く使用されません場合は、関数のパラメータの順序を覚えていないが、しかし、お手伝いをすることができます。いずれかの関数呼び出しの引数の名前が付けられますが、すべての名前付き引数が必要です。関数は、ColdFusion内の任意のテンプレートでも、別のColdFusion関数内から呼び出すことができます。次の例をご覧ください:
関数はまた、自分自身を呼び出すことができます。我々は、例えば、数の階乗を計算する(乗瞬間)で定義される次の関数を書き込み:
6の階乗は、例えば、6 × 5 × 4 × 3 × 2 × 1、または720です。階乗を計算するために、我々 )の数は、関数に渡されると、小さい乗次の(これは、6乗としても6 × 5乗を表現することができますを掛けたが返されます。あなたが再帰的な関数を作成するには、停止状態にあることを確認するように注意しなければならない。我々の場合では、いつmyNumの1は、再帰を停止します。あなたのロジックに停止条件をビルドしない場合は、無限ループに入ってリクエストを置く。我々は、構造体を参照し、一方、他の変数の値によって参照されてアクセスされる場合を示す。同じ関数に変数を渡すに適用されます。場合は、関数に番号を渡すと、関数、およびすべての変更は、関数の数は、関数呼び出しの外繰り返されないようになります、その番号のローカルコピーをしています。構造関数への参照によって渡され、それゆえ、任意の変更は、その関数の構造パラメータになります関数呼び出しの外にアクセスすることができます。 記事ニーナラシェイが提出 免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。 重要: 構造体のUDFこの記事は、""自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。
|
|||||
| Online: 452 users browsing the articles directory |
|
|