2015-07-17 17 views
6

Wikipedia dice "Perl 6 offre un sistema di scrittura ibrido in base al quale il programmatore può scegliere di utilizzare la digitazione statica, utilizzare la digitazione dinamica o miscelare i due". Come funziona la scrittura ibrida? Usare la tipizzazione statica in Perl significa semplicemente che dichiaro un tipo e devo esplicitamente trasmettere stringhe ai numeri e viceversa in cambio della sicurezza e della velocità di esecuzione? Ho notato che sembra che ci siano pochissime informazioni su questa funzione.Come funziona la digitazione ibrida?

risposta

6

Da quanto ho capito, la tipizzazione ibrido significa semplicemente che tipo sono supportate le annotazioni, ma facoltativo:

my Int $i = 0; # static typing 
my $i = 0; # dynamic typing 

Quando si utilizzano le annotazioni di tipo esplicite, il compilatore può controllare le cose per voi e magari ottimizzare il codice migliore . Ci sono caratteristiche simili in altre lingue, anche, come Objective-C:

NSString *foo = @"foo"; // explicit type signature, static typing 
id foo = @"foo"; // dynamic typing 

Tecnicamente parlando, questo non è esattamente la differenza tra tipizzazione statica e dinamica. Esistono lingue con un sistema di tipi statici che non richiede le annotazioni di tipo esplicito. In Swift o Haskell, puoi dire cose come let f = 0 (senza un'annotazione di tipo) e ancora ottenere il controllo di tipo statico grazie all'inferenza di tipo. Vedi anche What to know before debating type systems.

Esistono anche altre funzionalità più interessanti relative alla differenza tra digitazione statica e dinamica in Perl 6, vedere Jnthn’s talk.

+0

Quando aggiungi un tipo lo controlla sempre per te, che è diverso da quello che hai scritto. –

Problemi correlati