2009-09-09 43 views

Trả lời

11

Phụ thuộc vào tiêu chí của bạn cho "tốt nhất". Nếu tất cả các bạn đang làm là nối hai chuỗi, tôi sẽ đi với toán tử +. Rõ ràng những gì bạn đang cố gắng làm và dễ đọc, và nó nhanh hơn một chút vì nó không phải sử dụng các biến thể. (Các bạn đã nhìn vào những gì format thực sự thực hiện dưới mui xe? Nó kinda đáng sợ!)

Ưu điểm chính của format là nó cho phép bạn thực hiện một chuỗi đơn và lưu nó ở đâu đó, chẳng hạn như trong một tập tin văn bản hoặc một tổ chức lại và thu thập các thông số khác sau. Điều này làm cho nó hữu ích cho các nhiệm vụ phức tạp hơn. Nhưng nếu tất cả những gì bạn cần làm là gắn hai dây lại với nhau, thì đó là một IMO quá mức cần thiết.

+6

Thông thường "tốt nhất" cuối cùng là "Tôi có hiểu tại sao tôi đã viết mã theo cách này 3 tháng kể từ bây giờ không?". –

5

Dưới đây là một lựa chọn thứ ba:

s:=Concat(V1,V2); 
+6

Điều đó giống hệt với s: = V1 + V2; Concat là một trình biên dịch "ma thuật" chức năng đó là sụp đổ để gọi cùng một người trợ giúp nội bộ như + . –

+2

Trong khi nó giống hệt nhau đằng sau hậu trường, tôi thấy điều này dễ đọc hơn trong mã so với toán tử "+", đặc biệt là với các chuỗi dài hoặc nhiều kết nối. Điều này quay trở lại điểm thực tế của Mason về những gì "tốt nhất". – Argalatyr

10

Định dạng hoạt động với quốc tế hóa, giúp bạn có thể bản địa hóa ứng dụng của mình. Kết nối không. Do đó, tôi ủng hộ định dạng cho bất kỳ màn hình nào có thể phải được sản xuất theo cách thức phụ thuộc vào văn hóa.

Cập nhật: Định dạng lý do hoạt động cho quốc tế hóa là không phải tất cả ngôn ngữ đều thể hiện mọi thứ theo cùng một thứ tự. Một ví dụ giả tạo sẽ là:

resourcestring 
    sentence = ' is '; 

var 
    subject = 'Craig'; 
    adjective = 'helpful'; 
begin 
    WriteLn(subject + sentence + adjective + '!'); 

Tác phẩm này, và tôi có thể tùy chỉnh với tổ chức lại, nhưng bằng tiếng Tây Ban Nha, tôi sẽ viết, "¡Qué servicial es Craig!" Việc tổ chức lại không giúp tôi. Thay vào đó tôi nên viết:

resourcestring 
    sentence = '%S is %S!'; // ES: '¡Qué %1:S es %0:S!' 
+1

Bạn có thể muốn giải thích câu lệnh đó, có thể không rõ ràng đối với nhiều người dùng Delphi tại sao Định dạng hoạt động với i18n. –

+1

OK, thế nào? –

+0

Đúng những gì tôi hy vọng :-) –

0

tôi sử dụng:

s := v1 + ' ' + v2; 

Đó là rõ ràng nhất và dễ nhất để hiểu được.

Đó là điều quan trọng nhất.

Bạn có thể tìm thấy cấu trúc hiệu quả hơn một chút, ví dụ: sử dụng TStringBuilder trong Delphi 2009. Nếu hiệu quả là cực kỳ quan trọng, thì hãy làm những gì cần thiết trong hai hoặc ba dòng quan trọng nhất. Ở mọi nơi khác, sử dụng mã và cấu trúc rõ ràng và dễ hiểu.

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