1

私は非常に大きな構造体を持っていますが、残念ながらキーの代わりに値しか利用できません。構造体のキーと値を切り替えたり、値を渡してキーを検索したりする方法はありますか?

(私は他の誰かのコードを使用していて、それを変更することはできません。)

4

1 に答える 1

5

値しかわからない場合は、関数StructFindValueを使用して構造体キーを検索します。

一致の配列を返します (ただし、デフォルトでは 1 つの一致に制限されています)。各配列要素には、3 つのキーを持つ構造体が含まれています。

  • キー - キーの名前(目的のもの) ;
  • Path - フル パス (ネストされた構造体の場合)。
  • 所有者 - 値が取得された構造体。

使用例:

CGI スコープ内の localhost IP アドレスを指すキーを検索します (スコープも構造体です)。

<cfset Result = StructFindValue( CGI , '127.0.0.1' ) />

<cfdump var=#Result[1].Key# />

出力remote_addr- 最初に見つかった値。

構造体の順序は保証されていないことに注意してください。最初の値は状況によって異なる場合があります。

すべての結果を取得するには、scope パラメーターをall次のように指定するだけです。

<cfset Result = StructFindValue( CGI , '127.0.0.1' , 'all' ) />

<cfloop index=i from=1 to=#ArrayLen(Result)#>
    <cfdump var=#Result[i].Key# />
</cfloop>

出力しremote_addr remote_host local_addrます。

于 2013-01-07T14:47:41.900 に答える