Functions Metadata
The metadata of a function means all relevant information related to a function’s definition including:
-
Its callable name
-
Its access mode (public or private)
-
Its parameter names (if any)
-
Its purpose, in the form of doc-comments
-
Usage notes, warnings, examples etc., in the form of doc-comments
A function’s signature encapsulates the first three pieces of information in a single concise line of definition:
[private]
name(
param 1,
param 2,
…,
param n)
Get Functions Metadata
The built-in function get_fn_metadata_list
returns an array of object
maps, each containing the metadata of one script-defined function
in scope.
get_fn_metadata_list
has a few versions taking different parameters:
Signature | Description |
---|---|
get_fn_metadata_list() | returns an array for all script-defined functions |
get_fn_metadata_list(name) | returns an array containing all script-defined functions matching a specified name |
get_fn_metadata_list(name, params) | returns an array containing all script-defined functions matching a specified name and accepting the specified number of parameters |
The return value is an array of object maps containing the following fields.
Field | Type | Optional? | Description |
---|---|---|---|
namespace | string | yes | the module namespace if the function is defined within a module |
access | string | no | "public" if the function is public,"private" if it is private |
name | string | no | function name |
params | array of strings | no | parameter names |
this_type | string | yes | restrict the type of this if the function is a method |
is_anonymous | bool | no | is this function an anonymous function? |
comments | array of strings | yes | doc-comments, if any, one per line |