juego - coldfusion tutorial español
¿Cómo pruebo para ver si existe una variable en una estructura de ColdFusion? (2)
Encontré la respuesta aquí
Es StructKeyExists
Me gustaría probar:
<cfif Exists(MyStruct["mittens"])>
</cfif>
Si la clave "mitones" no existe en MyStruct, ¿qué devolverá? 0 o "" ??
¿Qué debería reemplazar la función Exists?
ACTUALIZAR
Lo intenté,
<cfif IsDefined(MyStruct.mittens)>
Lo cual también arroja el error
Element Mittens no está definido en MyStruct.
Para probar la existencia de la clave, recomiendo:
<cfif StructKeyExists(MyStruct, "mittens")>
<!--- or --->
<cfset key = "mittens">
<cfif StructKeyExists(MyStruct, key)>
Detrás de escena, esto llama al método containsKey()
del java.util.map en el que se basa la estructura de ColdFusion. Este es sin duda el método más rápido para descubrir si existe una clave.
La alternativa es:
<cfif IsDefined("MyStruct.mittens")>
<!--- or --->
<cfset key = "mittens">
<cfif IsDefined("MyStruct.#key#")>
Detrás de escena esto llama a Eval()
en la cadena pasada (o eso creo) y te dice si el resultado es una referencia de variable. En comparación, esto es más lento que StructKeyExists()
. En el lado positivo: puede probar una subclave en una estructura anidada en una llamada:
<cfif IsDefined("MyStruct.with.some.deeply.nested.key")>