Зависит от ваших критериев "лучший". Если все, что вы делаете, это объединяете две строки, я бы использовал оператор +. Очевидно, что вы пытаетесь сделать, и легко читается, и это немного быстрее, потому что не обязательно использовать варианты. (Вы смотрели, что на самом деле делает формат
под капотом? Это немного пугает!)
Основное преимущество формата
заключается в том, что он позволяет создавать одну строку и сохранять ее где-нибудь, например, в текстовом файле или строке ресурса , а другие параметры соберут позже. Это делает его полезным для более сложных задач. Но если все, что вам нужно сделать, это склеить две струны вместе, это своего рода перебор, IMO.
Я использую:
s := v1 + ' ' + v2;
Это самый ясный и простой для понимания.
Это самый важный.
Вы можете найти конструкцию, которая немного более эффективна, например, используя TStringBuilder в Delphi 2009. Если эффективность имеет первостепенное значение, тогда делайте то, что необходимо в двух-трех наиболее критических строках. В других местах используйте ясный и легкий для понимания код и конструкции.
Формат работает с интернационализацией, что позволяет локализовать ваше приложение. Конкатенации нет. Следовательно, я предпочитаю формат для любого дисплея, который, возможно, придется создавать с учетом культуры.
Обновление: формат работает для интернационализации, потому что не все языки выражают все в одном порядке. Надуманный пример:
resourcestring
sentence = ' is ';
var
subject = 'Craig';
adjective = 'helpful';
begin
WriteLn(subject + sentence + adjective + '!');
Это работает, и я могу настроить его с помощью строки ресурса, но по-испански я бы написал: «¡Qué servicial es Craig!» Ресурсная строка мне не помогает. Вместо этого я должен написать:
resourcestring
sentence = '%S is %S!'; // ES: '¡Qué %1:S es %0:S!'