Quote:
Originally Posted by Edugta.
Para que sirve enum?
|
Simplemente para ponerle nombre al нndice de una matrнz. Supongamos la siguiente matrнz:
pawn Код:
new Array[NUMERO DE ESPACIOS];
En ella podemos guardar lo que queramos, generalmente usamos cada espacio (slot) para cada cosa. Pero al usar nъmeros, se nos hace mбs difнcil saber donde va cada cosa. Por eso resulta conveniente usar las enumeraciones, las cuales LE DAN NOMBRE A CADA ESPACIO. Este nombre puede ser luego utilizado como нndice de la matrнz.
Un ejemplo simple:
pawn Код:
new Array[3];
main()
{
Array[0] = 1;
Array[1] = 2;
Array[2] = 3;
}
Allн NO hemos usado las enumeraciones, por lo que si usas esta matriz para algo como por ejemplo, los colores de un vehнculo y su ID, es posible que se te olviden en que espacio estб cada cosa.
Ahora usamos una enumeraciуn:
pawn Код:
enum NombreDeLaEnumeracion
{
color_1,
color_2,
id
};
new Array[NombreDeLaEnumeracion];
// Ahora si podemos:
Array[color_1] = 1;
Array[color_2] = 2;
Array[id] = 3;
Como verбs, resulta mucho mбs conveniente que saber en que espacio va cada cosa. Es mбs, Array[color_1] es lo mismo que Array[0]. Tambiйn es exactamente lo mismo que hacer:
pawn Код:
#define color_1 0
#define color_2 1
#define id 2
new Array[3];
Array[color_1] = 1;
Array[color_2] = 2;
Array[id] = 3;
Pero el ъltimo ejemplo no serнa muy bueno, ya que las definiciones afectan todo el cуdigo. Por ъltimo, usando enum, puedes decirle al compilador que tipo de datos vas a meter en cada espacio de la matriz. Por ejemplo:
pawn Код:
enum NombreDeLaEnum
{
Float:numero_decimal,
bool:boleano,
etc
};
new Array[NombreDeLaEnum];
Cosa que no se puede hacer normalmente. En fin, las enumeraciones simplifican el trabajo de usar los нndices de una matriz, asignando nombres y tipo de datos a cada uno de sus espacios.