Subscribe Bookmark RSS Feed

Function overloads in JSL?

senatorx

Community Trekker

Joined:

Jun 12, 2012

Hey,

I've just started working with Functions in JSL.  I am wondering if there is a way to create overload functions similar to C++/C#.

Even if JSL doesn't officially support it, there also may be a way to create pseudo overloads, such as with VBScript using CASE / WHERE.  Has anyone tried this?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Solution

There's no overloading; however, you can make arguments optional so that, for instance, f(a) and f(a, b) can call the same function:

       f = Function({x, y=0}, sqrt(x * x + y * y));

You can also check the types of the arguments with functions like Is Number() within a nested if(), which sounds like your VB example.

2 REPLIES
Solution

There's no overloading; however, you can make arguments optional so that, for instance, f(a) and f(a, b) can call the same function:

       f = Function({x, y=0}, sqrt(x * x + y * y));

You can also check the types of the arguments with functions like Is Number() within a nested if(), which sounds like your VB example.

senatorx

Community Trekker

Joined:

Jun 12, 2012

Thanks, I found a good discussion on optional arguments after doing a search.  This provides the same capability I need.  It sounds like optional arguments are created by providing default values for additional arguments.  You can also give a List or an Associative array to the function, and change the bahavior of the function based on the number of values in the list or which keys are present in the associative array.  Using a list requires inputs to be carefully placed in the correct order when calling the function, but with the associative array the arguments can be provided in any order.