【问题标题】:pascal - How pass record key as a procedure parameter?pascal - 如何将记录键作为过程参数传递?
【发布时间】:2015-03-04 17:07:08
【问题描述】:

我对 Pascal 中的记录 + 过程没有什么问题。我已将记录声明为类型,我希望将此记录键作为过程中的参数

这是记录结构和声明:

person = record
  name:string[20];
  age:integer;
end;

var x:person

我有这个程序,我不知道在参数中插入什么

procedure out(param);
begin
  writeln(param);
end;

以及程序主体中的调用过程:

x.name := 'Obama';
x.age := 35;

out(x.name);
out(x.age);

如何访问某个记录键以及如何在参数中传递它?谢谢

【问题讨论】:

  • 你为什么不把Person传出去然后写姓名和年龄?
  • 因为我不想在记录中写入所有键
  • 那你需要什么?你所做的只是给 writeln 起别名?记录只是语法糖,它在编译过程中全部消失。你不能做任何像 Person['name'] 这样的事情。如果你真的需要,那么它必须是 OutAge、OutName、OutNameAndAge 等。你会发现我们为什么要提出 OO。 :(
  • 您不能编写一个在同一个参数中同时接受字符串和整数的过程。编写单独的程序。

标签: types parameters record pascal procedure


【解决方案1】:
procedure out(param:person);
begin
  writeln(param.name);
  writeln(param.age);
end;

【讨论】:

  • 如果您在答案中添加一些解释或参考(例如文档)会更好。
猜你喜欢
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多