Saltar al contenido

¿El rubí está fuertemente o débilmente tipificado?

Armando, miembro de nuestro equipo, nos hizo el favor de redactar esta sección porque controla perfectamente dicho tema.

Solución:

rubí es “fuerte mecanografiado“.

La tipificación fuerte significa que el tipo de un objeto (no en el sentido de programación orientada a objetos, sino en un sentido general) se verifica antes de que se ejecute en él una operación que requiera un determinado tipo.

Tipo débil significa que no se realiza ninguna comprobación para garantizar que la operación pueda realizarse correctamente en el objeto. (Por ejemplo, cuando una función accede a un string gusta y array de flotantes, si no se realiza verificación de tipo entonces se permite la operación)

Editar: Han pasado 6 años desde que se publicó esta respuesta y creo que merece algunas aclaraciones adicionales:

A lo largo de los años, la noción de que “el tipo de seguridad es un dial, no un absoluto” comenzó a usarse a favor del significado binario (sí/no)

Ruby tiene un tipo “más fuerte” (con un “er”) que la mayoría de los lenguajes dinámicos típicos. El hecho de que Ruby requiera declaraciones explícitas para la conversión IE: Array(“foo”), “42”.to_i, Float(23), acerca el dial de tipeo de Ruby al extremo del espectro de “Tipo fuerte” que al de “Tipo débil”. .

Entonces diría que “Ruby es un lenguaje dinámico tipificado más fuerte que los lenguajes dinámicos más comunes”

Wikpedia lo etiqueta como “escrito dinámico (‘pato’)”.

Con respecto al comentario de Pop sobre que es “de tipo fuerte”, no estoy seguro de que su explicación realmente encaje con lo que sucede debajo de las sábanas. La resonancia magnética realmente no “verifica” para ver si se puede realizar una operación en un objeto; simplemente envía el mensaje al objeto, y si ese objeto no acepta ese mensaje (ya sea por una declaración de método o al manejarlo en #method_missing) vomita. Si el tiempo de ejecución realmente verificara que las operaciones fueran posibles, #method_missing no funcionaría.

Además, cabe señalar que dado que todo en Ruby es un objeto (y quiero decir todo), no estoy seguro de que lo que dijo sobre “no en un sentido” sea exacto. En Ruby, eres un objeto o un mensaje.

Mientras tu pueden entrar en discusiones sobre la definición de esos términos diría:

Ruby se tipifica dinámica y fuertemente, mientras que JavaScript se tipifica dinámica y débilmente.

Comentarios y calificaciones de la guía

Si sostienes algún titubeo o disposición de prosperar nuestro post eres capaz de dejar una disquisición y con mucho gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *