Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: gecko on October 29, 2011, 04:40:58 AM

Title: Funcion no devuelve string
Post by: gecko on October 29, 2011, 04:40:58 AM
probe con la funcion de ejemplo de la wiki, pero me devuelve numeros raros en lugar de un string


GLOBAL
    string res;
END

BEGIN
    res = example_function();
    say( "res: " + res );
END

FUNCTION string example_function()
PRIVATE
    string s;
END
BEGIN
    s = "Some string";
    return s;
END


y me imprime res: 5 o cosas asi... cuando deberia ser res: "Some string"

Hay algo mal aca?
Title: Re: Funcion no devuelve string
Post by: SplinterGU on October 29, 2011, 06:29:00 AM
http://forum.bennugd.org/index.php?topic=1722

http://forum.bennugd.org/index.php?topic=1445.0

la proxima version de compilador advertira las conversiones implicitas, para tener en cuenta si es lo que queremos o nos estamos mandando una macana.
Title: Re: Funcion no devuelve string
Post by: HaCkZJuaNN on October 29, 2011, 12:26:29 PM
¿Dónde hace la conversión implícita en ese código?
Title: Re: Funcion no devuelve string
Post by: gecko on October 29, 2011, 01:53:57 PM
uuu perdon por la repeticion! :O

solucionado declarando la funcion antes de usarla.

gracias!
Title: Re: Funcion no devuelve string
Post by: SplinterGU on October 29, 2011, 04:32:18 PM
aca,

    res = example_function();


de int a string...

la funcion es int, al no estar declarada antes de su uso... aunque realmente si luego de declarar implicitamente una funcion como int, aparece dicha funcion como string, deberia saltar un error... se me ocurre que el unico caso problematico es de retornos int (implicito) y funcion real es string.

voy a parchear por lo menos esta conversion para que de error.
Title: Re: Funcion no devuelve string
Post by: HaCkZJuaNN on October 29, 2011, 05:30:28 PM
Quote from: SplinterGU on October 29, 2011, 04:32:18 PM
aca,

    res = example_function();


de int a string...

la funcion es int, al no estar declarada antes de su uso... aunque realmente si luego de declarar implicitamente una funcion como int, aparece dicha funcion como string, deberia saltar un error... se me ocurre que el unico caso problematico es de retornos int (implicito) y funcion real es string.

voy a parchear por lo menos esta conversion para que de error.

Ah vale, por no declararla antes. Está bien saberlo.
Title: Re: Funcion no devuelve string
Post by: SplinterGU on October 29, 2011, 05:35:15 PM
ademas que las conversiones implicitas, generan mas opcodes y por consiguiente consumen mas... es mejor tener todo sin conversiones dentro de lo posible.