StructSome

説明

構造体に含まれているキーと値のペアの少なくとも 1 つの値が指定の条件を満たしているかどうかを判定します。

戻り値

1 つ以上の値が条件に一致する場合は true、それ以外の場合は false。

シンタックス

structSome(struct, function(key, value [,struct]){} [, parallel] [, maxThreads])

メンバー関数

structObj.Some(callback)

履歴

ColdFusion(2021 リリース):次のパラメーターが導入されました。

  • parallel
  • maxThreadCount

ColdFusion(2018 リリース)アップデート 5:この関数が追加されました。

パラメーター

パラメーター

必須/オプション

説明

struct

必須

少なくとも 1 つの値が検索される構造体。

callback

必須

条件をカプセル化した関数。

parallel

オプション

(ブール値)- 並列プログラミングを有効にする場合は true を指定します。

maxThreads

オプション

(整数)この関数が実行できるスレッドの数です。 スレッド数は 1~50 にする必要があります。値が 50 を超えると、例外が発生します。

例 1

<cfscript>
 mystruct = {a=1,b=2,c=3};
 doesValExist=(key,value,struct)=>return value==1
 writeoutput(structSome(mystruct,doesValExist))
</cfscript>

出力

YES

例 2

<cfscript> 
 structEven={a=2,b=4,c=8,d=10,e=12} 
 isEven=(key,value)=>value%2==0 
 writeOutput(StructSome(structEven,isEven)) // Returns True 
</cfscript>

出力

YES

メンバー関数

<cfscript> 
 structEven={a=2,b=4,c=8,d=10,e=12} 
 isEven=(key,value)=>return value%2==0 
 writeOutput(structEven.Some(isEven)) // Returns True 
</cfscript>

メンバー関数 - アロー演算子の使用

<cfscript> 
 ordstruct=["key1":"abc","key2":"def","key3":"sss"] 
    lambdaFunc= key => key.contains("key") 
    writeOutput(ordstruct.Some(lambdaFunc)) 
</cfscript>

例 3 - 名前付きパラメーター

<cfscript> 
 mystruct={"key1":"aval","key2":"bval","key3":"cval"} 
 result=StructSome(struct=mystruct,callback=function(key,val){ 
  if (key.contains("key1") && val.startswith("a")) 
              return 1 
  else 
              return 0 
   } 
 ) 
 writeOutput(result) 
</cfscript>

出力

YES

並列処理の使用例

<cfscript> 
mystruct= Structnew("ordered"); 
for(i=1;i<=10000;i++){ 
mystruct.insert("key#i#","val#i#") 
 
} 
function callback(key,val){ 
if(isObject(val)) 
 return true 
return false 
 } 
   
 t_start=GetTickCount() 
 writeoutput(mystruct.some(callback)) 
 t_end=GetTickCount() 
 writeoutput("<br>Time taken with no parallel:" &  t_end-t_start) 
 
 t_start=GetTickCount() 
 writeoutput(mystruct.some(callback,true,5)); 
 t_end=GetTickCount() 
 writeoutput("<br>Time taken with 5 threads:" &  t_end-t_start) 
  
  
 t_start=GetTickCount() 
 writeoutput(mystruct.some(callback,true,10)) 
 t_end=GetTickCount() 
 writeoutput("<br>Time taken with 10 threads:" &  t_end-t_start) 
  
 t_start=GetTickCount() 
 writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount=20)) 
 t_end=GetTickCount() 
 writeoutput("<br>Time taken with 20 threads:" &  t_end-t_start) 
  
 t_start=GetTickCount() 
 writeoutput(structsome(struct=mystruct,callback=callback,parallel=true,maxthreadcount=40)) 
 t_end=GetTickCount() 
 writeoutput("<br>Time taken with 40 threads:" &  t_end-t_start) 
  
</cfscript>

 Adobe

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2024

Adobe MAX
クリエイティブカンファレンス

10 月 14 日~ 16 日 マイアミビーチおよびオンライン

Adobe MAX

クリエイティブカンファレンス

10 月 14 日~ 16 日 マイアミビーチおよびオンライン

Adobe MAX 2024

Adobe MAX
クリエイティブカンファレンス

10 月 14 日~ 16 日 マイアミビーチおよびオンライン

Adobe MAX

クリエイティブカンファレンス

10 月 14 日~ 16 日 マイアミビーチおよびオンライン