Usar funciones locales
Con el fin de evitar repeticiones, es posible declarar funciones locales en el cuerpo de un script. Sin embargo, puesto que el cuerpo de un script en tiempo de ejecución se interpreta como el cuerpo de una función (véase Lenguajes de scripting admitidos), no todos los lenguajes permiten declarar funciones dentro de funciones.
JScript
JScript permite declarar funciones locales sin restricciones. Por ejemplo:
// Script de separación (JScript)
function shouldProcess(block){
if(block.Text.indexOf("ABBYY")>=0){
return true;
return false;
}
function process(block){
// Hacer algo con un bloque
}
for(var i = 0; i < this.TextBlocks.Count; i++){
var block = this.TextBlocks(i);
if(shouldProcess(block)){
process(block);
}
}
.NET
En lenguajes .NET, puede usar funciones lambda. Por ejemplo:
// Script de separación (C#)
System.Func<ITextBlock, bool> shouldProcess = (block)=>{
if(block.Text.IndexOf("ABBYY")>=0){
return true;
}
return false;
};
System.Action<ITextBlock> process = (block)=>{
// Hacer algo con un bloque
};
foreach (ITextBlock block in page.TextBlocks){
if(shouldProcess(block)){
process(block);
}
}
VBScript
Aunque VBScript no permite declarar funciones locales, sí puede usarse el método ExecuteGlobal para declarar una función o una clase globales.
26.03.2024 13:49:49