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

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.