2010-09-01 31 views
20

Tôi đang sử dụng Coldfusion. Tôi muốn nối hai chuỗi vào khóa cấu trúc tương tự, nhưng tôi tiếp tục nhận được một lỗi "không thể chuyển đổi x thành một boolean."Làm cách nào để nối hai chuỗi và lưu chúng vào cùng một khóa cấu trúc

Ví dụ:

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

Cả các công việc sau

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

Tại sao không phải công việc phương pháp?

Trả lời

46

& là toán tử chuỗi ký tự, AND&& là toán tử logic.

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

Yap, đúng vậy. – ppshein

8

Ngoài câu trả lời của Henry, bạn cũng có thể nối hai chuỗi như thế này:

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

Tôi đã làm một bài kiểm tra không chính thức về Cf9 trong vài tuần qua, và đã rất ngạc nhiên khi thấy rằng phương pháp này là * đáng kể * chậm hơn cho một kết nối duy nhất. Nó gần như là xấu cho hai. Tôi nghĩ đó là vì cách CF xử lý các khu vực thực thi, nhưng đó là một dự đoán. –

8

tôi đã thực hiện một số xét nghiệm không chính thức trên CF10 qua 4 cách khác nhau để nối chuỗi và kết quả thật đáng ngạc nhiên. Tôi đã lặp lại 50k phụ thêm "HELLO" theo nhiều cách khác nhau. Tôi đã bao gồm một số dữ liệu thô dưới đây theo thứ tự từ chậm nhất đến nhanh nhất. Những con số này là nhất quán trên 10 yêu cầu khác nhau, do đó tỷ lệ trung bình:

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

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

Những mùa thu theo thứ tự mà tôi mong đợi, nhưng đã rất ngạc nhiên tại StringBuffer là cách nhanh hơn nhiều. Tôi cảm thấy bạn sẽ tận dụng tối đa điều này khi kết hợp các dữ liệu chuỗi lớn, chẳng hạn như CSV hoặc tương tự. Không có bài kiểm tra chi tiết tôi thực hiện mà cân nặng một lựa chọn hơn khác trong các hoạt động một lần điển hình.

Các vấn đề liên quan