[SP-pm] Entendendo Protótipos
breno
breno at rio.pm.org
Tue Dec 23 05:42:57 PST 2008
2008/12/23 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> breno wrote:
>> protótipos são uma espécie de verificação de argumentos em tempo de
>> compilação, e permitem que vc chame subrotinas sem os parêntesis sem
>> gerar ambiguidade, como as funções built-in do Perl ("push", por
>> exemplo). A declaração de protótipos não envolve o nome da variável
>> onde vc pretende colocá-la, apenas o símbolo do tipo de variável ($,
>> @, %, &) que espera receber como parâmetros.
>
> ERRADO.
>
> Protótipos não verificam nada sobre o conteúdo dos parâmetros passados.
> Não verificam nem mesmo se os parâmetros passados realmente existem.
>
$ perldoc perlsub
<snip>
Prototypes
Perl supports a very limited kind of compile-time argument checking
using function prototyping.
</snip>
Meu comentário foi praticamente uma tradução: "protótipos são uma
espécie de verificação de argumentos em tempo de compilação". Faltou
só o "muito limitado".
Talvez eu tenha deixado (mal) subentendido que estava falando de
protótipos "tradicionais" quando disse que a declaração não envolvia o
nome da variável e sim o símbolo do tipo esperado, mas foi pq achei
que o Daniel estava se referindo a eles pelo próprio exemplo que usou
(daí minha sugestão do Method::Signatures). Talvez não tenha ficado
tão claro quando disse "e permitem" e não "e permitem (entre outras)".
Talvez eu tenha escrito rápido demais. Talvez vc tenha lido rápido
demais.
Ou eu falei algo de errado mesmo?
De qualquer forma, o seu ERRADO poderia ter sido facilmente
substituido por COMPLEMENTANDO ou mesmo EXPLICANDO MELHOR, ou
simplesmente omitido por completo. Mas aí não seria vc, não é mesmo?
:-)
Parabéns pela completa e didática explicação posterior. Apesar de ogro
vc tem muito mais paciência do que eu.
[]s
-b
More information about the SaoPaulo-pm
mailing list