Esta pregunta se hizo aquí , pero recibió respuestas pobres y no aclaró el problema. Creo que justifica pedirlo de nuevo.
Entiendo que puede escribir pato con lenguajes dinámicamente o estáticamente (pero los ejemplos de estos son raros, como las plantillas de C ++).
Sin embargo, no estoy seguro de si existe un lenguaje escrito dinámicamente sin tipear pato.
La escritura de pato significa que el tipo de un objeto se basa en las operaciones y los atributos que tiene en un momento dado. ¿Hay alguna forma de escribir dinámicamente sin admitir inevitablemente la escritura de pato?
Veamos este código de Python para el examen:
def func(some_object)
some_object.doSomething()
something = Toaster()
func(something)
En lenguajes de tipo dinámico, el tipo de un objeto solo se conoce en tiempo de ejecución. Entonces, cuando intentas hacer una operación en él (p some_object.doSomething()
. Ej. ), El tiempo de ejecución solo tiene una opción , que es verificar si el tipo de some_object
soporte es doSomething()
, o no , exactamente qué tipo de pato es.
Entonces, ¿es posible tener un lenguaje escrito dinámicamente sin escribir pato? Por favor explique.
1 + "1"
. En el caso de Python, la disciplina de verificación está prácticamente ausente y depende de la implementación del código de usuario verificar los tipos si el usuario (en oposición al tiempo de ejecución de Python) lo encuentra útil. También tenga en cuenta que la escritura de pato frente a la escritura de no pato es similar a la escritura nominal frente a la estructural (ver Wikipedia).