我需要澄清这种情况.
根据我的测试,Result变量定义为:
Boolean = False,Integer = 0,String =”,Object = nil等从第一行.
但我从来没有看到官方的参考.
这也是有道理的,因为这给了提示.
[DCC Warning] Unit1.pas(35):H2077赋值给“TForm1.Test”的值从未使用过
function TForm1.Test: Boolean; begin Result := False; // Some arbitrary code here Result := True; end;
但是如果我注释掉第一行,并且在最后一行之前有异常,会发生什么?结果= False?
如果Result未定义,这意味着我必须通过定义结果来启动每个函数,以防以后出现异常.这对我来说没有意义.
解决方法
否,结果没有(保证)默认值.它是未定义的,除非你给它一个价值.这是
the documentation所暗示的
If the function exits without assigning a value to Result or the
function name,then the function’s return value is undefined.
我刚刚试过
function test: integer; begin ShowMessage(IntToStr(result)); end;
并收到一条消息与文本35531136.