[Duda]Sobre el static y new
#2

El static va cuando quieres que una variable sea global pero solo se pueda usar dentro de cierto lugar. Por ejemplo, una variable que quieres que mantenga su valor pero no quieres que sea accesible fuera de OnPlayerConnect
pawn Код:
public OnPlayerConnect(playerid)
{
    static conexiones_totales;
    conexiones_totales += 1;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    conexiones_totales += 1;
    // El compilador mostrarб un error porque esta variable global solo se puede manipular dentro de OnPlayerConnect.
    return 1;
}
Se podrнa decir que es un truco de visibilidad que ayuda en ciertos casos donde quieres tener un script mбs ordenado, yo recomendarнa no usarlo solo porque se ve bien o porque otros programados lo usan; usarlo solo cuando de verdad sepas que lo necesitas.

La palabra new, en cambio, hace que la variable exista dentro del bloque donde se creу. Si la comparamos con static podremos observar que las static son globales restringidas a un бmbito (ellas existen fuera del бmbito aunque no son accesibles a niveles superiores) y las new son locales y por lo tanto NO EXISTEN fuera de su бmbito (pierden su valor cuando la ejecuciуn del script va a un bloque de cуdigo superior).

Esto suena bastante complicado pero en realidad no lo es, solo requiere leer un poco sobre que es un бmbito y que significa local y global.

pawn Код:
if (x)
{
    static st_a;
    new a;

// PRIMER БMBITO, EL NIVEL SUPERIOR

    if (y) {
        static st_b;
        new b;

// SEGUNDO БMBITO, SUPERIOR A if (z) e INFERIOR A if (x)
        if (z)
        {
            static st_c;
            new c;

// TERCER Y ULTIMO БMBITO (EN ESTE CASO), INFERIOR A TODOS LOS БMBITOS (if (x) e if (y))
        }
    }
}
їPuedes decir en donde se puede acceder cada variable?
Reply


Messages In This Thread
[Duda]Sobre el static y new - by Fornew - 13.01.2014, 15:12
Re: [Duda]Sobre el static y new - by Miguel - 13.01.2014, 17:17
Respuesta: [Duda]Sobre el static y new - by OTACON - 13.01.2014, 17:22
Respuesta: Re: [Duda]Sobre el static y new - by Fornew - 13.01.2014, 20:43
Respuesta: Re: [Duda]Sobre el static y new - by MugiwaraNoLuffy - 14.01.2014, 07:33
Respuesta: Re: [Duda]Sobre el static y new - by Fornew - 14.01.2014, 12:05

Forum Jump:


Users browsing this thread: 1 Guest(s)