pascal - 将具有整数值和字符索引的数组传递给 Pascal 中的函数
问题描述
我真的很想看看它是如何完成的,编译器一直假设我有整数索引并返回错误。
如何传递以下数组:
countc: Array['a'..'z'] of Integer;
到一个函数?
解决方案
在传统的 Pascal 中,在你可以将数组之类的东西传递给函数之前,你必须声明一个类型,你的数组是一个实例,就像这样
type
TSimpleArray = Array['A'..'Z', '0'..'9'] of integer;
var
ASimpleArray : TSimpleArray;
换句话说,您不能在函数/过程的定义中指定数组的边界。
一旦你像上面那样定义了你的数组类型,你就可以声明一个函数(或过程),它有一个已定义类型的参数,如下所示:
function ArrayFunction(SimpleArray : TSimpleArray) : Integer;
var
C1,
C2 : Char;
begin
ArrayFunction := 0;
for C1 := 'A' to 'Z' do
for C2 := '0' to '9' do
ArrayFunction := ArrayFunction + SimpleArray[C1, C2];
end;
这显然总计了数组的内容。
更现代的 Pascals,如 Delphi 和 FPC 的 ObjectPascals 也支持声明数组类型参数的其他方式,但它们必须从零开始(这排除了 char 索引的使用)。Delphi 和 FPC 也支持使用 `Result' 作为函数名的别名,如
function ArrayFunction(SimpleArray : TSimpleArray) : Integer;
[...]
begin
Result := 0;
如果您重命名函数或复制/粘贴它以定义另一个函数,这将节省时间和精力。
推荐阅读
- python - PyQt5抓取当前帧显示空白
- javascript - 如果用户不使用特定域,则重定向用户
- label - 在谷歌地球中显示 kml 文件的多边形标签
- php - 带有 AJAX 的 Magento 1.9 产品列表
- c++ - 为什么这段代码在 Visual Studio 2003 中编译?
- r - 如何从 checkboxGroupinput 获取向量字符输入并转换为数字分数
- json - 如何避免 Firestore 中的无限组合索引
- c++ - 内存泄漏 _bstr_t 重新分配
- javascript - 如何等待 Mongoose 搜索返回?
- git - 检查是否将获取分支并允许签出