将函数或过程用作另一个函数中的参数

在Delphi中,过程类型(方法指针)允许您将过程和函数视为可以分配给变量或传递给其他过程和函数的值。...

在Delphi中,过程类型(方法指针)允许您将过程和函数视为可以分配给变量或传递给其他过程和函数的值。

Hispanic man at desk using laptop Hispanic man at desk using laptop

下面介绍如何将函数(或过程)作为另一个函数(或过程)的参数调用:

  1. 声明将用作参数的函数(或过程)。在下面的示例中,这是“TFunctionParameter”。
  2. 定义一个将接受另一个函数作为参数的函数。在下面的示例中,这是“DynamicFunction”
type TFunctionParameter = function(const value : integer) : string; ... function One(const value : integer) : string;begin result := IntToStr(value) ; end; function Two(const value : integer) : string;begin result := IntToStr(2 * value) ; end; function DynamicFunction(f : TFunctionParameter) : string;begin result := f(2006) ; end; ... //Example usage: var s : string; begin s := DynamicFunction(One) ; ShowMessage(s) ; //will display "2006" s := DynamicFunction(Two) ; ShowMessage(s) ; // will display "4012"end;

重要注意事项

  • 当然,您可以决定“TFunctionParameter”的签名:它是过程还是函数,需要多少个参数,等等。
  • 如果“TFunctionParameter”是(实例对象的)方法,则需要在过程类型名称中添加object的单词,如:TFunctionParameter=function(const value:integer):object的string;
  • 如果希望将“nil”指定为“f”参数,则应使用指定的函数对此进行测试。
  • 正在修复“不兼容类型:'方法指针和常规过程'”
  • 发表于 2021-10-20 23:47
  • 阅读 ( 320 )
  • 分类:编程

你可能感兴趣的文章

功能原型(function prototype)和c语言中的函数定义(function definition in c)的区别

关键区别——功能原型与c中的功能定义 函数是用于执行特定任务的一组语句。在C编程中,执行从main()开始。它是一个函数。它可以被分成多个函数,而不是在同一个程序中编写所有语句。每个功能将执行不同的功能。函...

  • 发布于 2020-10-19 16:08
  • 阅读 ( 746 )

了解python lambda函数的初学者指南

... 在本文中,我们将解释您需要了解的关于这些神秘函数的一切,如何使用它们,以及它们为什么有用。 ...

  • 发布于 2021-03-24 12:14
  • 阅读 ( 240 )

如何在googlesheets中使用and和or函数

...的数据是否符合某些标准,您可以使用AND和OR。这些逻辑函数为您提供正确和错误的响应,您可以使用它们对数据进行排序。 如果将AND与多个参数一起使用,则所有这些参数都必须为true才能得到真正的响应;否则,AND将以FALSE响...

  • 发布于 2021-04-02 21:04
  • 阅读 ( 176 )

如何在excel中将多个单元格中的文本合并到一个单元格中

...连接在一起”的奇特方式,Excel中有一个特殊的Concatenate函数来实现这一点。此函数允许您将不同单元格中的文本合并到一个单元格中。例如,我们有一个包含姓名和联系信息的工作表。我们希望将每行中的姓和名列合并到全名...

  • 发布于 2021-04-08 19:07
  • 阅读 ( 251 )

计数(count)和伯爵(counta)的区别

Excel提供了数百种不同类别的函数。它有可以用来计数的数学函数。例如,您可以计算为某个活动注册的来宾数。Excel提供了几个计数函数,但常用的两个是count和COUNTA。当与其他函数一起使用时,它们是最有价值的函数。这是Exc...

  • 发布于 2021-06-26 10:18
  • 阅读 ( 313 )

存储过程(stored procedure)和功能(function)的区别

存储过程和函数的主要区别在于,存储过程是一组可以在关系数据库上反复执行的SQL语句,而函数是一组使用编程语言编写的可以反复执行的指令。 关系数据库管理系统(RDBMS)是基于关系模型的数据库管理系统。它将数据存储...

  • 发布于 2021-06-30 23:16
  • 阅读 ( 1057 )

违约(default)和参数化构造函数(parameterized constructor)的区别

默认构造函数是一种在程序员没有在程序中定义任何构造函数时自动调用的构造函数。相反,参数化构造函数是程序员通过传递参数给类中的实例变量初始值而定义的一种构造函数。这就是默认构造函数和参数化构造函数的主要...

  • 发布于 2021-07-01 05:25
  • 阅读 ( 671 )

变量(variable)和sql中的参数(parameter in sql)的区别

...保存特定类型的单个数据值,而参数有助于在存储过程和函数之间交换数据。 SQL(structuredquerylanguage)是一种在关系数据库中存储、管理和检索数据的计算机语言。诸如MSSQL之类的RDBMS使用变量和参数,我们可以在SQL过程语句中...

  • 发布于 2021-07-01 06:02
  • 阅读 ( 608 )

传递值(pass by value)和通过引用传递(pass by reference)的区别

...值复制到另一个变量,而在传递引用中,实际参数传递到函数。 计算机程序是一组指令,用来指导CPU执行某项任务。在编程中有各种各样的概念来编写高效的程序。其中之一是function,它是一组可重用的语句。与其把所有的语句...

  • 发布于 2021-07-01 08:19
  • 阅读 ( 466 )

函数声明(function declaration)和c程序设计中的函数定义(function definition in c programming)的区别

C语言中函数声明和函数定义的主要区别在于函数声明表示函数是什么,函数定义表示函数做什么。 C是由dennisrichie开发的高级通用编程语言。它是许多其他语言的基础编程语言,如C++、Python、java、PHP等。函数是C编程中的一个重...

  • 发布于 2021-07-01 13:49
  • 阅读 ( 349 )
uwu40752
uwu40752

0 篇文章

相关推荐