函数的Result变量是否有任何保证的默认值,如0,''或nil?或者结果总是在使用前初始化?
我有一个函数返回一个这样的字符串:
function Foo(): String
begin
    while {...} do
    Result := Result + 'boingbumtschak';
end;
它运行正常,但现在我得到一些字符串,其中包含之前调用该函数的内容.当我Result := ''在开头添加一个,它没关系.我什么时候应该初始化Result变量,什么时候不需要?(字符串,基元,类实例(零))
Dav*_*nan 19
类型的函数返回值string实际上由编译器视为隐式var参数.当函数开始执行时,Result变量包含随后将为其分配返回值的局部变量中的任何内容.
因此,您应始终初始化函数返回值.此建议不仅适用于字符串,还适用于所有数据类型.
昨天在Stack Overflow上讨论了这个问题.