Подтвердить что ты не робот

Как объединить две строки и сохранить их в один и тот же ключ структуры

Я использую 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>

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

4b9b3361

Ответ 1

& - это оператор строки concat, AND и && - логические операторы.

<cfset myStruct.concatendatedSring = myStruct.string1 & myStruct.string2>

Ответ 2

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

<cfset myStruct.concatendatedSring="#myStruct.string1##myStruct.string2#">

Ответ 3

Я провел несколько неофициальных тестов на CF10 через 4 разных способа конкатенации строк, и результаты удивляют. Я сделал 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

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