develooper Front page | perl.perl6.language | Postings from April 2008

default parameters in methods

Thread Next
From:
John M. Dlugosz
Date:
April 10, 2008 20:35
Subject:
default parameters in methods
It is not specified in the Synopses as I recall, but I believe that this is useful enough that it must be made to work:

   method bytes (Encoding :$encoding = .encoding)
   returns Int

or even

   method bytes (Encoding :$encoding = self!encoding)
   returns Int

That is, a named-only parameter, which may be used as an optional adverb or extra parameter to affect details of the function, should default to a pre-set value inside the instance.

If this is not allowed, the beginning of the method would always have to check for defaults.  That should be automatic.  And it documents the situation nicely in the signature, without further explanation that "if the parameter is not supplied..."

This means that the default arguments run inside the context of the method call, and can do anything that you would expect from their lexical position.

--John

Thread Next


Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About