什么是最好的方法,简单的字符串连接或string.format?
例如,使用什么更好:
s:=v1+' '+v2
Run Code Online (Sandbox Code Playgroud)
要么
s:=format('%S %S',[v1,v2])
Run Code Online (Sandbox Code Playgroud)
Mas*_*ler 11
取决于您的"最佳"标准.如果你所做的只是连接两个字符串,我会选择+运算符.很明显你正在尝试做什么并且易于阅读,并且它更快一点,因为它不必使用变体.(你看过format引擎盖下究竟做了什么吗?这有点吓人!)
它的主要优点format是它允许您创建单个字符串并将其存储在某个位置,例如在文本文件或资源字符串中,并在以后收集其他参数.这使它对更复杂的任务很有用.但是,如果您只需要将两根琴弦粘在一起,那就有点过分了IMO.
Cra*_*ntz 10
格式与国际化一起使用,可以本地化您的应用程序.连接没有.因此,我赞成任何可能必须以文化依赖方式制作的展示格式.
更新:原因格式适用于国际化,并非所有语言都以相同的顺序表达所有内容.一个人为的例子是:
resourcestring
sentence = ' is ';
var
subject = 'Craig';
adjective = 'helpful';
begin
WriteLn(subject + sentence + adjective + '!');
Run Code Online (Sandbox Code Playgroud)
这是有效的,我可以使用资源字符串进行自定义,但在西班牙语中我会写,"éQuéserviciales Craig!" resourcestring对我没有帮助.相反,我应该写:
resourcestring
sentence = '%S is %S!'; // ES: '¡Qué %1:S es %0:S!'
Run Code Online (Sandbox Code Playgroud)
这是第三种选择:
s:=Concat(V1,V2);
Run Code Online (Sandbox Code Playgroud)