点击或拖拽改变大小

Functions.AEvalOld 方法 (__Array, ICodeblock)

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

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

参数

aArray
类型:__Array
要遍历的数组。
cbBlock
类型:ICodeblock
要执行的代码块。

返回值

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