Why optional parameters must appear at the end of the declaration

Incognito picture Incognito · May 24, 2010 · Viewed 17k times · Source

In all programming languages supporting optional parameters that I have seen there is a imitation that the optional parameters must appear at the end of the declaration. No required parameters may be included after an optional item. What is the reason for that ? I guess it can be compiler/interpreter requirement.

Answer

Noon Silk picture Noon Silk · May 24, 2010

Well, if they were at the front, how would you detect when they've stopped being supplied? The only way would be if the variable type was different after the optional parameters. Bit of a weird requirement, so it makes sense that you just force them to be last (save the trouble of complex rules for detecting the "final" optional parameter).

Besides, it's the most natural way to do it when calling the function.