ColdFusion:从列表中选择第一个非null值

Bre*_*ell 3 coldfusion idioms

在JavaScript中,您可以这样做:

var a = null;
var b = "I'm a value";
var c = null;
var result = a || b || c;
Run Code Online (Sandbox Code Playgroud)

并且'result'将获得'b'的值,因为JavaScript会使'或'运算符短路.

我想在ColdFusion中使用一行成语,我能想到的最好的是:

<cfif LEN(c) GT 0><cfset result=c></cfif>
<cfif LEN(b) GT 0><cfset result=b></cfif>
<cfif LEN(a) GT 0><cfset result=a></cfif>
Run Code Online (Sandbox Code Playgroud)

任何人都可以比这更好吗?

Pet*_*ton 8

ColdFusion没有空值.

您的示例基于哪个项为空字符串的选择.

如果这是您所追求的,并且您的所有其他值都是简单值,则可以执行以下操作:

<cfset result = ListFirst( "#a#,#b#,#c#" )/>
Run Code Online (Sandbox Code Playgroud)

(这是有效的,因为标准列表函数忽略空元素.)