难道没人可以从深层次来分析一下吗
解决方案 »
- Delphi XE2 之 FireMonkey 的问题 进来看
- 新人求教 ShellExecute 简单问题
- BUTTON的小问题.
- 使用QuickReport打印数据丢失问题!!急急
- 请问各位大哥,请一下有关网格dbrgid的问题
- 在sql server中使用了触发器,ado的Tadotable控件要报错,简直太烦了,各位帮帮忙!
- 谁能介绍一下帮助制作软件有那些,那有下载
- 如何实现在Windows状态栏上,鼠标移动时状态栏出现或隐藏功能。(急,急,急)
- 格式转换问题
- 关于chm帮助文件的问题?
- 串口问题,WriteFile 有谁给帮看一下,应该不是太难.
- 如何模拟在APPLICATION.MESSAGEBOX中按下了"OK"按钮?
其实很语言都有类似的,C++都是函数,但函数分有返回值和无返回值,就跟Delphi的函数和过程是一样的。这个应该没有什么吧,要讨论多深呢。你举个方面来说说
过程和函数都是具有单入口(single entry)和单出口(single exit)的子程序。按照Object Pascal语言设计师Niklaus Wirth的观点,过程为完成任务或任务集合的代码实体(entity),函数则为完成计算或计算集合的代码实体。当调用过程时,对象被更新,过程抽象的用户只能看到这些对象被更新,而无从知道发生变化的步骤;在调用函数时,用户
只能看到结果值,却无从知道求值的具体步骤。从表面上看就是:函数有返回值;过程没有返回值。在实际编程中,很多地方用过程和函数都能实现程序所需的功能,只不过看哪个方便而已。
function可以作为右值,procedure不可以如果一个routine没有返回值,你硬是编成function,那返回什么呢?
C用返回void来表示不返回,其实和procedure完全是一样的
并不是说只有pascal才有procedure或function,没有这回事,
只是pascal使用关键字,使得代码看起来清晰一点,而且可以提高语法分析的速度
function和procedure都可以做右值
routine可以编成有返回值,boolean型,成功执行返回true,不成功返回false不就可以了只是pascal使用关键字,使得代码看起来清晰一点,而且可以提高语法分析的速度:非常展同啊,delphi超级快的编译速度,其实object pascal语言本身的有点所至,
TShowMessage = function(Msg: string): Pointer;procedure TForm1.Button1Click(Sender: TObject);
begin
TShowMessage(@ShowMessage)('Hello World!');
end;
>>function和procedure都可以做右值不知道是否记错了,可以在赋值操作符(:=)左边的称为左值,可以在右边的称为右值
如果是这样的话,function怎么可以做左值呢你说的function和procedure都可以做右值
那是他们的地址可以作为右值,任何地址都是可以作为右值的