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?
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.
¿Dónde hace la conversión implícita en ese código?
uuu perdon por la repeticion! :O
solucionado declarando la funcion antes de usarla.
gracias!
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.
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.
ademas que las conversiones implicitas, generan mas opcodes y por consiguiente consumen mas... es mejor tener todo sin conversiones dentro de lo posible.