Vous êtes sur la page 1sur 11

AutoLISP Leccin 5 - VARIABLES

(Abril de 1999)
Las variables se utilizan como el principio significa para almacenar los valores. Los
archivos tambin pueden ser utilizados para almacenar los valores, pero los valores de las
variables son lo que almacenar para uso a corto plazo.
Variables de AutoLISP pueden ser cualquiera de (4) cuatro "tipos"; enteros, reales,
puntos o cuerdas. Variables en AutoLISP son automticamente "con tipo" en funcin del
valor que contienen, por lo que no se requiere "tipificacin" de variables.
El setq funcin se utiliza para crear una variable. Una variable contendr un valor nulo
hasta algn valor est enlazado a la misma. Si hace referencia a una variable antes de
que haya asignado un valor a la misma, recibir cero como resultado de la referencia.
(Setq a 3); variable Integer
(Setq un 3,00), la variable real
(Setq a (lista 1.50 2.375 1.00); variables Point
(Setq un "Esto es una cadena."); Variable String
Contenido
[hide]
1 de denominacin de variables
2 Las variables de ndice
3 variables de estado
4 Directrices de denominacin
5 variables globales
6 CONSTANTES
7 variables de entrada
8 Constantes
9 el uso de variables
9.1 Alcance
9.2 Propsito
10 Las variables globales
10.1 Problemas
10.2 Excepciones
10.3 Reducir los riesgos
11 Otras Consideraciones sobre variables
11.1 Es magia
11.2 Conversiones
11.3 Cuerdas
12 Resumen
13 Ms Lecciones
Denominacin de variables
Cuando hablamos de los comentarios en la leccin 3, hemos descuidado a tocar en el
mtodo ms fcil de comentar de todos; nombres de variables. Si utiliza nombres de
variables adecuadas, gran parte de su cdigo puede ser auto-documentado. Slo
necesita aadir comentarios al cdigo, lo que no est claro con slo leerlo.
Las variables pueden tener cualquier nombre que desee proporcionando el primer
carcter es alfabtico, y no utilizan los caracteres reservados de la leccin 2.
Muchos programadores AutoLISP tratan de mantener los nombres de variables de (6)
seis caracteres o menos. Esto es debido a la forma variables se almacenan en AutoLISP.
Si un nombre de variable tiene menos de 6 caracteres AutoLISP slo requiere de (2) dos
nodos para almacenar el valor. Si usted hace el nombre de la variable de ms de (6) seis
caracteres, AutoLISP almacena el valor en un nodo y almacena un puntero al nombre en
el otro nodo. El nombre en s se almacena en la memoria tomada de la pila de
almacenamiento de cadenas. Montn espacio es limitado y es por eso que algunos
programadores tratan de mantener los nombres de variables de corto.
Dos cosas han sucedido que hace que esta regla no tan tallado en piedra, ya que sola
ser. El advenimiento de la memoria virtual y aprender a programar limpiamente ha hecho
mucho para resolver el problema de quedarse sin memoria. No puedo hacer mucho
sobre la cantidad de memoria en su ordenador o la cantidad de necesidades de AutoCAD
de memoria, pero yo te puedo mostrar cmo no se quede sin memoria de programacin
de una manera limpia.
Poner nombre a una variable no es como nombrar a la mascota de la familia, no se
puede elegir un nombre porque es lindo o que es lo que la variable se parece. Usted
tiene que elegir nombres basados en lo que es la variable se mantiene. Usted debe mirar
a la variable y su nombre como la misma cosa. Si usted no puede decir lo que la variable
es, tal vez usted no necesita la variable de todos modos.
Si una variable contiene el punto de una lnea, afirman que en el nombre de la variable.
En primer lugar decirle que la lnea y, a continuacin, decir qu punto. Las variables
pueden ser nombrados as o pueden ser nombrados mal, todo depende de ti.
Bueno:
CenterLineStart
CtrLnStrt
CtrLnEnd
Malo:
C1; Inicio de la lnea central
C2; Fin de la lnea central
Los malos nombres de variables se han hecho un poco ms aceptable por el uso de los
comentarios para decir lo que son, pero los buenos nombres de las variables son mucho
ms descriptivo y no requieren comentarios. Cualquier persona que ha programado para
un rato sabe comentarios rara vez vienen fciles, a veces no del todo. Es mejor dar sus
variables de nombres, que no necesitan ser explicadas, por lo que un comentario que falta
despus no conducir a la confusin sobre lo que es la celebracin de la variable.
Tambin tenga en cuenta que los comentarios de la lnea final no importa lo bien hecho,
el desorden de cdigo y hacerlo ms difcil de leer. Si se puede evitar el uso de los
comentarios de la lnea final, que ser mucho mejor.
Algunas veces usted tiene muchas variables que parecen tener los mismos valores de
tipo. Pueden parecer lo mismo, pero siempre hay algo diferente en ellos que el nombre le
puede decir.
Bueno:
TapDrillCenterLineStart
TapDrCtrLnStrt
TapDrCtrLnEnd
TapCenterLineStart
TapCtrLnStrt
TapCtrLnEnd
Malo:
TDCS
TDCE
TDS
TDE
He visto los programadores van tan lejos como dar muchas pginas de comentarios para
explicar lo que cada una de sus variables se supona que sostener. Tener un anillo
decodificador no es un sustituto para la correcta denominacin de variables. Si usted le
da los nombres de variable completo tendr menos comentando y un tiempo ms fcil
cuando la caza problemas.
Las variables de ndice
Los ndices a travs de un bucle son una de las reas en las que es a veces difcil de
subir con un nombre. Muchos programadores tienen un nombre que le dan a todos los
ndices, como el ndice, Ind, Ndx, o algo por el que se sienten cmodos viendo. Ellos
saben cuando leen su cdigo lo que estas cosas son, pero otros no. Si usted va a utilizar
nombres cortos para los ndices asegrese de decirle qu es lo que desea indexar a
travs.
Bueno:
PointNdx
ListNdx
FileNdx
Malo:
x
Ind
Ndx
Una variable de ndice es como cualquier otra variable y necesita un nombre propio para
ser realmente entendido.
Las variables de estado
Variables de estado debe dar nombres mejor que "la bandera". Todo el mundo parece
utilizar el indicador para las variables de estado. Lo primero que tenemos que hacer para
dar nombres verdaderamente significativas para las variables, es alejarse de pensar en
nuestros problemas desde el punto de vista de la computadora. Una bandera dice si algo
est bien o mal, se le debe dar un nombre que refleja el tema estamos comprobando.
Bueno:
FileDone
PrintDone
SortDone
Las variables de estado no se utilizan ampliamente en la programacin AutoLISP, pero si
usted los usa, les dan nombres reales.
Directrices de denominacin
Las variables deben ser nombrados de manera que tambin identifica a su alcance y / o
escribir.
Las variables globales
debe ser identificable como tal por la lectura de su nombre. Algunas personas usan el
prefijo o sufijo notaciones para lograr esto. Un ejemplo sera aadir ag o g_to el comienzo
del nombre de la variable:
gScrewList
Esto identifica la variable como una lista que est disponible para todas las funciones en
el programa. Yo no soy un fan de poner el carcter "_" en los nombres de variables como
un separador. Yo prefiero la convencin de nomenclatura donde capitalizar la primera
letra de cada palabra o abreviatura en el nombre de la variable.
CONSTANTES
Normalmente capitalizado como una manera de identificarlos. Se destacan del resto de
su cdigo para que sepa que son una constante.
Las variables de entrada
Son parmetros a una funcin, no deben ser modificados dentro de la funcin. Se
recomienda que usted identifique las variables de entrada por lo que si usted ve uno
siendo modificadas que puede hacer algo ms. Ser ms fcil para leer el cdigo y saber
qu variables son parmetros si se identifica en el nombre. Una "i" o "IP" pueden estar
prefijados al nombre para identificarlos.
Constantes
Una constante en AutoLISP es realmente nada ms que una variable que ha configurado
a un valor determinado, y saber que no se debe cambiar a cualquier otro valor. Es un
conceptual, idea en lugar de un "tipo" como en otros idiomas. La variable de PI se ha
preestablecido para contener el valor de pi. El concepto de las constantes es una muy
poderosa idea de que usted debe familiarizarse con, y tratar de hacer uso de.
Una constante se debe utilizar en lugar de los nmeros de magia en sus programas. Un
nmero mgico es un literal numrico, tales como el valor de PI, o un factor de conversin
que no cambiar a lo largo de su programa. Si utiliza los nmeros que no tienen otra
explicacin que el propio nmero, y cualquiera que te siga, tendr problemas para
averiguar lo que el nmero es para cuando llega el momento de cambiar el programa.
Muchas veces vamos a usar constantes para identificar las condiciones de frontera de
nuestro programa no debe ir por encima o por debajo. En estos casos, una "_MAX"
puede ser aadido al nombre de decirle qu extremo de la frontera que hemos alcanzado.
(Setq LIST_MAX 10)
(If (/ = LstNdx LIST_MAX)
(Hacer_esto))
El cdigo anterior establece nuestra lista Nmero mximo. Luego dice que si no hemos
llegado a ese nmero para seguir adelante y hacer lo que sea que estemos haciendo. Si
yo hubiera escrito utilizando el 10 como el valor de comprobacin, tendramos muy pocos
indicios de lo que me iba a registrar para. Tambin si us LIST_MAX otro lugar y decido
que necesito los cupos mximos que ser 12, slo tengo que cambiar en un solo lugar en
vez de mirar todo a travs de mi cdigo para encontrar everyplace pude haber puesto 10.
Si utiliza una constante en un solo lugar, es bueno saber lo que la constante se refiere.
Si utiliza una constante en ms de un lugar, es bueno ser capaz de cambiarlo en un solo
lugar y lo han sustituido en todas partes.
Siglas nunca debe ser usado para nombrar una variable. Sera muy difcil decir MFICO
significa "mximo de archivos que se puede abrir".
El uso de variables
Alcance
Las variables tienen lo que se conoce como el alcance. El mbito de una variable est
directamente relacionada con la cantidad de otro cdigo que tiene acceso a la variable.
En general, el ms pequeo es el alcance de sus variables el mejor es usted. Es por eso
que las variables globales estn bien vistas.
Si una variable tiene un alcance grande, muchas funciones en el programa pueden
acceder directamente a ellos y, al hacerlo, cambiar ellos. Las variables slo se deben
cambiar por las funciones que estn ntima con la variable. Una variable debe ser creado
para una sola funcin o mdulo, y que la funcin o mdulo debe ser el nico que tiene
acceso directo a la variable.
Si usted enumera sus variables de la seccin de variables local de la lista de parmetros,
se limita el alcance de la variable a esa funcin y cualquier funcin definida dentro de esa
funcin.
(My_prog defun (/ Var1 Var2)
(Setq Var1 Var2)
)
Var1 y var2 son ahora locales a slo la funcin my_prog. Si hubiera definido otra funcin
dentro my_prog las variables habran sido accesibles a l tambin.
(My_prog defun (/ Var1 Var2)
(Setq Var3 (SUB_PROG))
(SUB_PROG defun (/)
(* Var1 Var2)
)
)
Como se puede ver en el ejemplo Var1 y var2 son accesibles a SUB_PROG, porque
SUB_PROG se define dentro my_prog. Esta es la base para la creacin de mdulos y se
discutir en lecciones posteriores. Por ahora todo lo que tienes que recordar es si una
variable aparece en la lista de parmetros, su alcance se limita a la funcin en la que
aparece en la lista.
Propsito
Cada variable debe ser inicializado antes de usarlo. En algn momento usted podra
terminar con dos variables con el mismo nombre, y por la inicializacin de la variable
antes de su uso, que evitarse que mediante el valor que pueda haber recogido en una
vida previa.
Este tipo de desorden nunca debe suceder, pero a veces por falta de tiempo o cualquier
otra razn que acabamos de entrar en demasiada prisa y las cosas pueden salir mal. La
mejor manera de ahorrarse el dolor es el uso de un poco de programacin defensiva.
Cada variable se crea se debe utilizar para un propsito y un solo propsito. La variable
ms comn que se utiliza para dos propsitos es la variable de ndice. Si est utilizando
la misma variable ndice en dos o ms lugares diferentes, no ha nombrado a sus variables
o sus funciones correctamente. Una variable de ndice debe disponer de la funcin es
una parte de, como parte de su nombre. Esto evitar que se indexe en una estructura de
datos en el punto equivocado, porque se ha olvidado de inicializar una variable antes de
usarla.
Otra cosa a tener en cuenta a la hora de pensar en el fin de una variable es para
asegurarse de que utiliza todas las variables que se declaran. A veces, en el desarrollo
de un programa que cambia la forma de una funcin funciona, y declarar nuevas variables
para que coincida con la forma en que la funcin modificada funciona. Asegrese de
limpiar todas las variables de edad que pueda haber establecido para la versin anterior.
Las variables globales
Problemas
Sera fcil decir que nunca se deben utilizar variables globales, pero este no es el caso.
Hay momentos en que la nica manera de lograr algo es con una variable global.
Afortunadamente esto es raramente el caso.
Las variables globales tienen muchos problemas asociados con su uso. Ninguno de
estos problemas son peor que la otra, todas son malas y deben ser evitados.
Si usted no ha podido inicializar los datos antes de su uso, una variable global le
devolver el ltimo valor que posea. Esto significa que los ndices mundiales se
equivocan, los valores globales de la longitud o posicin de estar equivocados, y cualquier
otro valor que hagas mundial probablemente tambin estar equivocado. Limitar el
alcance de sus variables.
Una variable global se puede cambiar por cualquier funcin en su programa. Slo la
sesin de dibujo actual limita su mbito de aplicacin. Esto significa que otros programas
que usted puede cargar tambin podran tomar la variable global y utilizar su valor en
lugar de la inicializacin de la variable a su local "contexto" de valor. No deje que una
base por bolas programa sobre otro programa. Probablemente, la mejor razn que tengo
para mantener las variables locales de una funcin es la reutilizacin de cdigo. Si
mantengo mi variables locales a una funcin o mdulo en mi programa, puedo tirar de esa
funcin o mdulo y nosotros en otros programas. Esta reutilizacin de cdigo es donde
se obtiene una mayor productividad en su programacin. No pase por la reutilizacin de
cdigo en modo alguno.
Excepciones
En algn momento, usted encontrar las variables globales para ser un mal necesario y
se ver obligado a utilizarlos. Una de las grandes razones para utilizar las variables
globales es pasar valores por defecto para sus programas. Si est codificando para hacer
su mirada del programa y se siente como construido en los comandos de AutoCAD, usted
tendr que pasar valores por defecto a su programa. Las variables globales o un archivo
externo son buenas maneras de ahorrar los valores de una ejecucin de su programa a la
siguiente.
Hay otra manera de hacer esto y evitar los datos globales todos juntos. AutoCAD ha sido
el suministro de las variables del sistema de usuario para su uso en varios releases ahora,
y esta podra ser la mejor solucin para el problema de variable global. Esto no es sin
embargo un fracaso del sistema a prueba, ya que otros programas tambin pueden estar
usando las variables de sistema del usuario y escribir sobre sus valores por defecto.
Reducir los riesgos
Si tiene que utilizar variables globales, hay varias cosas que puede hacer para protegerse
de los problemas. Utilizando los mtodos siguientes debera reducir el riesgo de que algo
va a conseguir pisado por otro programa. Comienza a escribir el programa con todas las
variables locales, y slo hacer que las variables globales cuando sea necesario. Si se
debe aumentar el alcance de una variable, trate de aumentar su alcance a nivel de
mdulo, antes de hacerlo global. De esta manera usted puede mantener el nmero de
variables globales a un mnimo.
Recuerde hacer variables globales obvio. Nombrarlos de una manera que usted sabr
con mirarlos es la mejor manera de mantener recta del mundial. Usted puede incluso
considerar la inclusin de variables globales en los comentarios de la nota en la seccin
de cabecera de su programa. Si se enumeran de globales a alguien haciendo
mantenimiento a su programa ser capaz de decir cules son las variables que.
Rutinas de acceso pueden ser escritas para obtener acceso a las variables locales de
otra funcin. Si otra funcin necesitan tener acceso a las variables locales, trata de
escribir rutinas de acceso antes de que usted acaba de hacer las variables globales. Una
rutina de acceso puede controlar el acceso a la variable a cualquier nivel y mantener la
variable de ser cambiado. Usted puede construir un "slo lectura" nivel de acceso a las
rutinas para proteger a las variables de la modificacin fuera. Tirar todos sus datos en
una gran estructura y acceso a los datos no es la proteccin de sus datos o lo que es ms
fcil de leer o entender el programa. Al escribir rutinas de acceso a la tendencia es la de
escribir una gran estructura para sostener todo, de esa manera usted slo necesita una
rutina de acceso para llegar a todos los datos. Los datos deben ser mantenidos local a
los mdulos de usarlo, y rutinas de acceso mltiple se deben escribir para llegar a los
datos en cualquier mdulo.
Otras Consideraciones sobre variables
Es mgico
He mencionado los problemas con los nmeros "mgicos" antes, pero voy a repetir lo
que ya dije. Nmeros mgicos deben ser evitados a toda costa. Si tiene nmeros que
son constantes, utilice una variable constante, de modo que su significado es obvio.
Nmeros mgicos causan ms problemas cuando el mantenimiento de los programas de
lo que valen.
Conversiones
Las conversiones de tipos se deben hacer obvia. AutoLISP se convertir
automticamente en un valor entero a un flotador si usted est haciendo matemticas con
un entero y un flotador. AutoLISP tambin le permitir asignar cualquier "tipo" de datos a
un nombre de variable. La combinacin de estas dos cosas puede llevar a problemas si
se asigna un entero a una variable que pensabas que era un flotador.
Si divide un entero por un flotador se obtiene un flotador. Si divide y entero por un entero
se obtiene un nmero entero. Esto significa que si se asigna un entero a una variable que
est tratando como un flotador, el valor devuelto ser un entero, que ser el valor
incorrecto.
En la asignacin de nmeros de punto flotante a variables utilice siempre detrs de 0. La
fuga 0 asegura un nmero de coma flotante y es ms fcil de leer cuando su tratando de
averiguar lo que su programa est haciendo. La funcin FIX convertir un flotador a un
entero y la funcin FLOAT convierte un entero en un flotador.
Cuerdas
Si usted tiene una cadena que se utiliza muchas veces en su programa, podra salvar a
escribir y algo de espacio en la memoria si se coloca la cadena en una variable, y llam a
la variable en lugar de escribir a toda la cadena. Puede utilizar estas variables para el
nombre del programa y los mensajes de error, entre otras cosas. Esto le permite cambiar
el nombre del programa o modificar los mensajes de error en un solo lugar, y se refleja en
todo su programa.
Resumen
Supongo que eso es suficiente para que pueda absorber por ahora. Como se puede ver
las variables son muy importantes y hay que pensar en lo que estn haciendo todo el
tiempo. No utilice la variable s indiscriminadamente, y no hacer que todo mundial slo
para no tener que pensar demasiado. Vale la pena el esfuerzo extra para usarlos
correctamente.

Vous aimerez peut-être aussi