Sono abituato a senso tipizzazione dinamica controllo per il tipo di informazioni oggetto struttura/non orientato agli oggetti in fase di esecuzione e gettando una sorta di errore tipo, vale a dire se si starnazza come un'anatra sua un'anatra. Esiste un tipo diverso di digitazione dinamica (per favore vai nei dettagli).Digitazione dinamica senza digitazione anatra?
risposta
No, la tipizzazione dinamica è quando i valori hanno tipo, ma le variabili non lo fanno, quindi la maggior parte tipo di controllo viene effettuato in fase di esecuzione. Quindi, in sostanza, se il valore cammina o cova come un'anatra, è un'anatra, altrimenti viene generato un errore. Anatra tipizzazione realtà solo descrive una caratteristica di tipizzazione dinamica che assicura sarà typesafe (cioè un metodo funziona solo se la variabile foo
'ha l'attributo destra o può eseguire tale metodo).
Sì, assolutamente. Duck-typing è un idioma che dice che il tipo di valore in questo momento è basato sui campi e sui metodi che ha ora. La digitazione dinamica dice solo che i tipi sono associati a valori di runtime, non a variabili e parametri statici. C'è una differenza tra i due, e puoi usare quest'ultimo senza il primo.
Ad esempio, se programmato in PHP e voi stessi limitati ai tipi di base senza l'utilizzo di OO, allora si sarebbe utilizzando la tipizzazione dinamica senza usare anatra tipizzazione.
Potresti approfondire il tuo esempio? stai semplicemente dicendo che il controllo del tipo in fase di esecuzione è la digitazione dinamica, mentre il controllo basato sulla verifica dell'esistenza di metodi e proprietà degli oggetti è chiamato digitazione anatra? cioè, diresti che la differenza tra i due ha a che fare con * oggetti *? In entrambi i casi (dinamica non anatra e digitazione anatra), sembra che la compatibilità di determinate operazioni (chiamata di metodo, aggiunta, ecc.) Con i valori di input sia verificata in fase di esecuzione; è giusto? l'unica differenza è che la digitazione anatra riguarda gli oggetti e che la digitazione dinamica è più generale, giusto? – EOL
@EOL: Sì, il controllo del tipo è una digitazione dinamica (che dovrebbe essere chiamata "verifica dinamica", il controllo dell'esistenza della proprietà è la digitazione anatra. "La questione degli oggetti di interesse" è un po 'vaga per dire che è corretta, ma penso che Sono entrambi sulla stessa pagina –
Grazie! Ora vedo meglio la distinzione tra i due. – EOL
- 1. Dalla digitazione statica alla digitazione dinamica
- 2. Digitazione dinamica in C#
- 3. Questa digitazione anatra è in Python?
- 4. Posso migliorare questo metodo con la digitazione anatra?
- 5. Che cos'è un esempio di digitazione anatra in Java?
- 6. in scala definisci un tipo generico basato sulla digitazione anatra?
- 7. Come funziona la digitazione ibrida?
- 8. Implementazione trasparente di una particolare forma di digitazione dinamica
- 9. Costo delle prestazioni dell'utilizzo della digitazione dinamica in .NET
- 10. Utilizzo della digitazione dinamica in D, un linguaggio tipizzato staticamente
- 11. Digitazione implicita e TDD
- 12. Evita la duplicazione del codice utilizzando la digitazione anatra in scala
- 13. Che cos'è la digitazione dipendente?
- 14. stampa lentamente (Simula la digitazione)
- 15. Mostra testo durante la digitazione
- 16. Qual è la differenza tra l'associazione dinamica Vs digitazione dinamica nell'obiettivo C
- 17. Kendo UI Datepicker disabilita la digitazione
- 18. Aggiornamento casella di testo durante la digitazione
- 19. Errore di digitazione dei messaggi di MassTransit
- 20. Uno strano esempio di digitazione in Ocaml
- 21. Perché DateTimePicker BackColor Disabilita la digitazione manuale?
- 22. Combobox wrap text durante la digitazione
- 23. Limiti della digitazione dipendente in Idris
- 24. Come usare numpy nella digitazione opzionale
- 25. Xcode scorre il testo durante la digitazione
- 26. Come si simula la digitazione con jQuery?
- 27. Java interrompe la digitazione! Chi può spiegarlo?
- 28. Installa pacchetti di digitazione dietro proxy aziendale
- 29. Esiste un linguaggio di programmazione compilato * con una digitazione dinamica, forse anche debole?
- 30. F # tipo generico vincoli e anatra digitando
Questo è errato. Non controlla il tipo, solo che il tipo può eseguire qualche operatore X o ha qualche attributo Y. Se si chiama, ad esempio, toString() su una variabile, quindi se è un oggetto e implementa un metodo toString() , quindi verrà chiamato, in caso contrario, si ottiene un errore. Ma molti tipi potrebbero soddisfare questo requisito. – siride
Buon punto, eseguirò una modifica –