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

标签 coldfusion idioms

在 JavaScript 中,您可以这样做:

var a = null;
var b = "I'm a value";
var c = null;
var result = a || b || c;

而 'result' 将得到 'b' 的值,因为 JavaScript 短路了 'or' 运算符。

我想在 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>

谁能比这做得更好?

最佳答案

ColdFusion 没有空值。

您的示例基于哪个项目是空字符串的选择。

如果这是您所追求的,并且所有其他值都是简单值,您可以这样做:

<cfset result = ListFirst( "#a#,#b#,#c#" )/>

(这是因为标准列表函数忽略了空元素。)

关于ColdFusion:从列表中选择第一个非空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155435/

相关文章:

java - 使用 UTF-8 和 ASCII 检查文件时使用 Coldfusion FileExists 时出现问题

clojure - 在 Clojure 中是否有更惯用的方法来获取集合的 N 个随机元素?

hibernate - 如何删除 ColdFusion ORM 中的关联?

node.js - 惯用的 Node 错误处理

ruby - Ruby 中的哈希成语的哈希?

c++ - C++ clone idiom 中协变返回类型的有用性?

clojure - 什么是 :use 的惯用 clojure

coldfusion - 循环 Cfquery 还是 Struct?

javascript - ColdFusion float 问题

sql - Coldfusion 循环查询并仅显示一次 html 标记