BLOCK
BLOCK是PDMS提供的原生类。该类通常不独立使用,主要是配合ARRAY的Evaluate方法使用,用于返回一个经过计算的数组。
sample
// 实例化
!oBlock = object BLOCK('Express 表达式')
// 计算数组对象
var !aZoneList coll all ZONE for ce
// 获取数组的名称,并全部转换为小写字母
!aZoneNameList = !aZoneList.Evaluate(object BLOCK('!aZoneList[!EVALINDEX].Dbref().Name.LowCase()'))
Note
- BLOCK的参数是字符串型
!EVALINDEX
是固定的写法,不能使用其他变量名代替
数组排序
利用BLOCK实现自定义的排序规则。
// 原数组
!aS[1] = 'A-002'
!aS[2] = 'A-001'
!aS[3] = 'A-101'
// 利用后三位作为排序规则
!aSortCondition = !aS.Evaluate(object BLOCK('!aS[!EVALINDEX].Substring(-1,-3)'))
// 获取排序后的索引
!aSortIndex = !aSortCondition.SortedIndices()
q var !aS.ReIndex(!aSortIndex)
// 结果
!aS[1] = 'A-001'
!aS[2] = 'A-002'
!aS[3] = 'A-101'