Как объединить две строки и сохранить их в одном структурном ключе - PullRequest
27 голосов
/ 02 сентября 2010

Я использую Coldfusion.Я хочу объединить две строки в один и тот же ключ структуры, но получаю сообщение об ошибке «не могу преобразовать x в логическое значение».

Например:

<cfset myStruct.string1 = nodes[1].string1.XmlText>
<cfset mystruct.string2 = nodes[1].string2.XmlText>

следующие работы

<cfset myStruct.concatendatedSring = nodes[1].string1.XmlText AND nodes[1].string2.XmlText>
<cfset myStruct.concatendatedSring = myStruct.string1 AND myStruct.string2>

Почему ни один из методов не работает?

Ответы [ 3 ]

55 голосов
/ 02 сентября 2010

& является оператором строки string, AND и && являются логическими операторами.

<cfset myStruct.concatendatedSring = myStruct.string1 & myStruct.string2>
10 голосов
/ 04 ноября 2014

Я провел ряд неофициальных тестов на CF10 с помощью 4 различных способов объединения строк, и результаты оказались удивительными. Я сделал 50 тыс. Итераций добавления HELLO различными способами. Ниже приведены некоторые приблизительные данные в порядке от медленного к быстрому. Эти цифры были одинаковыми по 10 различным запросам, следовательно, в среднем:

string1 = "#string1##string2#"; // ~4800ms
string1 = string1 & string2; // ~ 4500ms
string1 &= string2; // ~4200ms

string1 = createObject("java",  "java.lang.StringBuffer").init();
string1.append(string2); // ~250ms

Они упали в том порядке, в котором я ожидал, но был удивлен, насколько быстрее был StringBuffer. Я чувствую, что вы получите максимальную отдачу от этого при объединении больших объемов данных String, таких как CSV или аналогичные. Я не проводил детального теста, который взвешивал бы один вариант над другим в типичных одноразовых операциях.

10 голосов
/ 02 сентября 2010

В дополнение к ответу Генри вы также можете объединить две строки, подобные этой:

<cfset myStruct.concatendatedSring="#myStruct.string1##myStruct.string2#">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...