【发布时间】:2011-07-17 06:00:09
【问题描述】:
函数的 Result 变量是否有任何保证的默认值,例如 0、'' 或 nil?或者 Result 是否应该在使用前进行初始化?
我有一个函数返回这样的字符串:
function Foo(): String
begin
while {...} do
Result := Result + 'boingbumtschak';
end;
它工作得很好,但现在我得到了一些包含先前调用该函数的内容的字符串。当我在开头添加Result := '' 时,就可以了。我应该什么时候初始化Result 变量,什么时候不需要? (字符串、原语、类实例(nil))
【问题讨论】:
-
最丑陋的一点是编译器既不抱怨未初始化的结果,也不像
out那样处理和自动初始化。相反,它更像是var,因此让您能够(如果我们想这样称呼它)用它来做 Dumb Things™。
标签: delphi