ColdFusion是否有用于创建结构的简短语法?

Kip*_*Kip 11 syntax coldfusion struct

在ColdFusion中创建结构有什么"简短"的语法吗?我想替换这个冗长的代码:

<cfscript>
  ref = StructNew();
  ref.Template = "Label";
  ref.Language = "en";
  stcML = GetPrompts(ref);
</cfscript>
Run Code Online (Sandbox Code Playgroud)

更像是一个JavaScript对象:

<cfscript>
  stcML = GetPrompts({ Template: "Label", Language: "en" });
</cfscript>
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

Tom*_*lak 17

Coldfusion 8(及以上)有一个struct literal表示法:

<cfset objData = {
  Key1 = "Value1",
  Key2 = "Value2"
} />
Run Code Online (Sandbox Code Playgroud)

但是,附加了一些字符串:

注意: ColdFusion 9修复了上面列出的错误,因此现在任何CF版本都可以使用.我仍然留在链接中供参考.

  • 在ColdFusion 9中,隐式结构和数组表示法是固定的.嵌套工作,您可以"动态"创建它们作为函数或标记参数:doFoo({foo ="bar"})或<cffile attributeCollection ="#{action ='read',...}#"/ > (5认同)

Ras*_*pin 6

如果您尝试简化CF8中的结构语法会遇到嵌套和/或内联缺陷,您可以使用这个看似简单的函数:

<cfscript>
    function nStruct(){
        return arguments;
    }
</cfscript>
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下语法:

<cfdump var="#nStruct(
    a=1,
    b=nStruct(
        c=2,d=3
    )
)#" />
Run Code Online (Sandbox Code Playgroud)