点击或拖拽改变大小

Functions.AEval 方法 (__Array, ICodeblock, __Usual)

X#
对数组中的每个元素执行代码块。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION AEval(
	aArray AS ARRAY,
	cbBlock AS ICodeblock,
	nStart AS USUAL
) AS ARRAY
查看代码

参数

aArray
类型:__Array
要遍历的数组。
cbBlock
类型:ICodeblock
要执行的代码块。
nStart
类型:__Usual
起始元素。
负值从末尾开始。
如果 nCount 为正,默认值为1;如果 nCount 为负,默认值为数组的长度。

返回值

类型:__Array
aArray 的引用。
代码块的返回值被忽略 — 要将返回值分配给数组中的每个元素,请使用 AEvalA() 函数。
备注
AEval() 将元素值和元素索引作为参数传递。 AEval() 不对它正在传递的数组元素的内容做任何假设。
假定提供的代码块知道每个元素中将包含什么类型的数据。 AEval() 类似于 DBEval(),后者为数据库文件的每条记录执行代码。
像 DBEval() 一样,AEval() 可以用作构建简单和复杂数组结构的迭代命令的原语。
提示 提示:
在 Visual Objects 2 中引入了两个不同的函数:AEval() 和 AEvalOld()。这些函数之间的区别在于 AEval() 只用一个参数(数组中的元素)调用代码块,而 AEvalOld() 还传入第二个参数(数组索引)。在 X# 中,这种区别不再存在。因此,在 X# 中 AEval() 和 AEvalOld() 做的是同样的事情。
示例
这个例子显示一个一维数组的内容:
X#
1LOCAL aArray[6]
2AFill(aArray, "Hi All!") // 填充所有元素
3AEval(aArray, {|Element| QOut(Element)})
这个例子使用 AEval() 显示由 Directory() 函数返回的文件名和文件大小数组:
X#
1LOCAL aFiles := Directory("*.dbf")
2LOCAL nTotal := 0
3AEval(aFiles, {|aDBFFile | QOut(PadR(aDBFFile[F_NAME], 10), ;
4        aDBFFile[F_SIZE], nTotal += aDBFFile[F_SIZE]})
5? "Total bytes:", nTotal
参见