相关疑难解决方法(0)

是否有必要为从Delphi函数返回的变量分配默认值?

渐渐地,我一直在使用更多变体 - 它们在某些地方非常有用,可以承载编译时未知的数据类型.一个有用的值是UnAssigned('我没有给你一个值').我想我很久以前就发现了这个功能:

function DoSomething : variant;
begin
  If SomeBoolean then
    Result := 4.5
end;
Run Code Online (Sandbox Code Playgroud)

似乎相当于:

function DoSomething : variant;
begin 
  If SomeBoolean then
    Result := 4.5
   else
   Result := Unassigned; // <<<<
end;
Run Code Online (Sandbox Code Playgroud)

我推测这个推理必须动态创建一个变体,如果SomeBoolean为FALSE,编译器已创建它,但它是'Unassigned'(<> nil?).为了进一步鼓励这种思考,如果省略分配结果,编译器不会报告任何警告.

刚才我发现了令人讨厌的错误,我的第一个例子(其中'结果'未明确默认为'nil')实际上从其他地方返回了一个"旧"值.

在修复变体时,我是否应该总是分配结果(就像我在使用预定义类型时那样)?

delphi function variant

7
推荐指数
2
解决办法
1775
查看次数

函数的结果是否始终初始化?

可能重复:
Delphi中Result的默认值是什么

此问题类似,我现在问以下问题.

function Test:Boolean;
begin end;
Run Code Online (Sandbox Code Playgroud)

结果值是否总是保证为假(0)?整数值不是,布尔值也是如此?

delphi types

3
推荐指数
1
解决办法
1930
查看次数

标签 统计

delphi ×2

function ×1

types ×1

variant ×1