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