回 帖 发 新 帖 刷新版面

主题:Maxumi的Turbo Pascal诡异教程第1讲

使用过程类型/函数类型的变量:
  语法格式:
    type
      ptype=procedure;        {过程类型ptype}
      ftype=function: Integer;{函数类型ftype, ftype类型变量的返回值是integer}
    var
      m:ptype;                {ptype类型变量m}
      n:ftype;                {ftype类型变量n}
  注意: 要使用过程类型/函数类型的变量, 你应该打开编译开关{$F+}.

  使用举例:

{此程序非原创, 这是Turbo Pascal中example文件夹下的ProcVar.pas, 我只是翻译了注释而已}
{$F+}
program ProcVar;
  type
    IntFuncType = function(x, y: integer): integer;
    {函数类型IntFuncType, IntFuncType类型变量有x, y两个参数, 返回值是integer}
  var
    IntFuncVar: IntFuncType;
  procedure DoSomething(Func: IntFuncType; x, y: integer);
    begin
      Writeln(Func(x, y));               {调用函数Func并输出结果}
    end;
  function Add(x, y : integer): integer;
    begin
      Add:=x + y;
    end;
  function Sub(x, y : integer): integer;
    begin
      Sub:=x - y;
    end;

  begin
    DoSomething(Add, 1, 2);              {相当于Writeln(Add(1, 2));}
    DoSomething(Sub, 1, 2);              {相当于Writeln(Sub(1, 2));}
    IntFuncVar:=Add;                     {注意这是赋值, 不是调用}
    DoSomething(IntFuncVar, 3, 4);       {这才是调用}
    IntFuncVar:=Sub;                     {注意这是赋值, 不是调用}
    DoSomething(IntFuncVar, 3, 4);       {这才是调用}
  end.

回复列表 (共1个回复)

沙发

能详细的说说rpg的数据结构吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册