Functions.AEval 方法 (__Array, ICodeblock, __Usual) | |
对数组中的每个元素执行代码块。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION AEval(
aArray AS ARRAY,
cbBlock AS ICodeblock,
nStart AS USUAL
) AS ARRAY
public static __Array AEval(
__Array aArray,
ICodeblock cbBlock,
__Usual nStart
)
查看代码参数
- 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() 做的是同样的事情。
|
示例
这个例子显示一个一维数组的内容:
1LOCAL aArray[6]
2AFill(aArray, "Hi All!")
3AEval(aArray, {|Element| QOut(Element)})
这个例子使用 AEval() 显示由 Directory() 函数返回的文件名和文件大小数组:
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
参见