Moh*_*mad 28 string coldfusion struct
我正在使用Coldfusion.我想将两个字符串连接到相同的结构键中,但我不断收到"无法将x转换为布尔值"的错误.
例如:
<cfset myStruct.string1 = nodes[1].string1.XmlText>
<cfset mystruct.string2 = nodes[1].string2.XmlText>
Run Code Online (Sandbox Code Playgroud)
以下都不起作用
<cfset myStruct.concatendatedSring = nodes[1].string1.XmlText AND nodes[1].string2.XmlText>
<cfset myStruct.concatendatedSring = myStruct.string1 AND myStruct.string2>
Run Code Online (Sandbox Code Playgroud)
为什么两种方法都无效?
Hen*_*nry 56
&是字符串连接操作,AND并且&&是布尔运算符.
<cfset myStruct.concatendatedSring = myStruct.string1 & myStruct.string2>
Run Code Online (Sandbox Code Playgroud)
Ger*_*der 10
除了亨利的答案,你还可以连接两个字符串,如下所示:
<cfset myStruct.concatendatedSring="#myStruct.string1##myStruct.string2#">
Run Code Online (Sandbox Code Playgroud)
Tri*_*Lee 10
我已经通过4种不同的方式对CF10进行了一些非正式的测试来连接字符串,结果令人惊讶.我做了50k迭代,以各种方式附加"HELLO".我在下面按照从最慢到最快的顺序包含了一些粗略的数据.这些数字在10个不同的请求中是一致的,因此平均值:
string1 = "#string1##string2#"; // ~4800ms
string1 = string1 & string2; // ~ 4500ms
string1 &= string2; // ~4200ms
string1 = createObject("java", "java.lang.StringBuffer").init();
string1.append(string2); // ~250ms
Run Code Online (Sandbox Code Playgroud)
这些都按我预期的顺序排列,但对于它的速度有多快感到惊讶StringBuffer.在连接大量字符串数据(例如CSV或类似数据)时,我觉得您将充分利用这一点.在典型的一次性操作中,没有进行详细的测试,在一个选项上权衡了另一个选项.