Funcion no devuelve string

Started by gecko, October 29, 2011, 04:40:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gecko

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?
Torres Baldi Studio
http://torresbaldi.com

SplinterGU

#1
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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

HaCkZJuaNN

¿Dónde hace la conversión implícita en ese código?

gecko

uuu perdon por la repeticion! :O

solucionado declarando la funcion antes de usarla.

gracias!
Torres Baldi Studio
http://torresbaldi.com

SplinterGU

#4
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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

HaCkZJuaNN

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.

SplinterGU

ademas que las conversiones implicitas, generan mas opcodes y por consiguiente consumen mas... es mejor tener todo sin conversiones dentro de lo posible.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2