05
Ago
07

Casting en Velneo

Como comenté en el artículo “null, ese gran desconocido, Velneo hereda características de la herramienta que se usa para su desarrollo, el lenguaje C.

Otra de esas características heredadas es el casting implícito entre distintos tipos de variables. Para ilustrar que significa esto veamos un ejemplo:

Ejemplo

Al ejecutar este código esperaríamos que el mensaje por pantalla fuera “4 facturas”, pero de forma sorprendente o no, la salida por pantalla es “4″.

¿Por qué sucede esto?

Casting implícito

En Velneo tenemos tipos de datos como en cualquier otro lenguaje: int, float, string, pero con la salvedad de que no tenemos que declararlos de forma explícita.

Por ello cuando realizamos operaciones con los datos Velneo utiliza el casting implícito para hacer las conversiones entre tipos de datos. El casting implícito se explica de forma breve en este artículo.

El casting implícito evita al desarrollador, en muchos casos, preocuparse por funciones de conversión entre tipos, aunque también implica estar más atento a las comparaciones y las operaciones entre datos.

Ejemplo

Supongamos que tenemos una cadena que representa un entero y queremos sumarle otro entero.

ejemplo

El resultado del código anterior es “43″. ¿Por qué? Velneo, ante la concatenación de datos, realiza un casting implícito en función al tipo de dato del primer componente de la concatenación, en este caso una cadena, o sea, antes de realizar la concatenación convierte el resto de los componentes a string.

¿Entonces como lo hacemos?

Pues tenemos varias opciones:

  1. Utilizamos la función fValor, que tal como dice la ayuda de Velneo Convierte una cadena alfabética en su valor numérico, haríamos Mensaje -> ‘a’ + fValor( ‘b’)
  2. Forzamos a que el primer componente sea del tipo que nos interesa. Hacemos Mensaje -> ‘b’ + ‘a’

Truco

Y el primer ejemplo, ¿cómo lo podemos resolver?. Una astucia a utilizar cuando usamos la función Mensaje, es siempre hacer que el parámetro se inicie con una cadena, en nuestro caso haríamos Mensaje -> “” + ‘a’ + ‘b’ y el resultado es el esperado: “4 facturas”.


2 Respuestas a “Casting en Velneo”


  1. 1 Oscar
    07 Agosto 2007 a las 9:20 am

    Muy bueno este blog, excelente idea y sobre todo la ayuda que prestas a los que estamos todavía un poco verdes con esta herramienta. Visitaré la página para seguir tus consejos.
    Gracias y un saludo
    Oscar

  2. 2 Cuco
    07 Agosto 2007 a las 11:09 am

    Yo el tema del “null”, lo veo muy simple:

    En el ejemplo intentas comparar una variable local ‘null’ a la que intentas asignar un valor nulo, no asignándole nada por lo que la variable no toma ni valor ni tipo (un valor incierto, si acaso se configurará como numérico, no lo sé) con otra variable local “a” a la que asigna un valor cierto, una cadena vacía.

    Pues claro, la comparación da cero y se encamina por el “else”, ¿qué esperabas?

    Con respecto a lo del “Casting”, es algo que viene, creo, hasta en la ayuda del editor, pero explicado desde C++.

    No está mal que alguién nos desentrañe las entrañas C++ de Velneo. Quedo a la espera de algo más jugoso.


Escribe un comentario




Suscripciones y enlaces

 

Agosto 2007
L M X J V S D
    Oct »
 12345
6789101112
13141516171819
20212223242526
2728293031  

a