2009-12-01 5 views

Répondre

3

Non, il n'y a pas de surcharge. Vous pouvez vérifier si vous faites un module factice avec et sans la décoration et le compiler en utilisant le drapeau 'S'.

1

Ce n'est pas une décoration, mais un alias. Cela vous permet à la fois d'avoir votre gâteau et de le manger. Vous pouvez avoir un modèle qui est apparié comme d'habitude et avoir une variable qui est liée à la partie correspondante du terme. Ainsi, dans

foo([a,b,c|_]=List) -> ... . 

correspondra à une liste avec les 3 premiers éléments a, b et c et lier List à la liste entière. Il peut être utilisé n'importe où dans un modèle et est utile car il peut vous éviter de reconstruire le terme. L'utiliser comme une forme de commentaire n'est pas un problème mais honnêtement, je n'en vois pas le sens, il encombre la tête. Je voudrais écrire votre exemple comme

%% get_next_state(SPid, NextPort) -> ... . 

get_next_state(undefined, undefined) -> 
    stop; 
+0

rvirding: (1) Je ne savais pas comment appeler cet idiome, maintenant je sais grâce à vous. (2) Je sais que je peux utiliser le raccourci sans l'alias, je trouve juste ce langage pour améliorer la clarté sans avoir à écrire un bloc de documentation. Je fais cela pour les fonctions simples/privées. – jldupont

Questions connexes