| Parameter (computer Science) |
Article Index for Parameter |
Information AboutParameter (computer Science) |
|
PARAMETERS AND ARGUMENTS Although parameters are also commonly referred to as Arguments , arguments are more properly thought of as the actual values or references assigned to the parameter variables when the subroutine is called at Runtime . When discussing code that is calling into a subroutine, any values or references passed into the subroutine are the arguments, and the place in the code where these values or references are given is the ''parameter list''. When discussing the code inside the subroutine definition, the variables in the subroutine's parameter list are the parameters, while the values of the parameters at runtime are the arguments. Many programmers use ''parameter'' and ''argument'' interchangeably, depending on context to distinguish the meaning. In practice, distinguishing between the two terms is usually unnecessary in order to use them correctly or communicate their use to other programmers. Alternatively, the equivalent terms ''formal parameter'' and ''actual parameter'' may be used. To better understand the difference, consider the following subroutine written in C :
The subroutine ''sum'' has two parameters, named ''addend1'' and ''addend2''. It adds the values passed into the parameters, and returns the result to the subroutine's caller (using a technique automatically supplied by the C compiler). The code which calls the ''sum'' subroutine might look like this:
The variables ''value1'' and ''value2'' are initialized with values. The variables are not arguments or parameters. At runtime, the values assigned to these variables are passed to the subroutine ''sum''. In the ''sum'' subroutine, the parameters ''addend1'' and ''addend2'' are evaluated, yielding the arguments 40 and 2, respectively. The values of the arguments are added, and the result is returned to the caller, where it is assigned to the variable ''sumValue''. DATATYPES In Strongly-typed Programming Language s that are explicitly typed, each parameter's Type is specified in the subroutine's declaration. Languages using Type Inference attempt to discover the types automatically from the function's body and usage, while weakly-typed programming languages defer type resolution to run-time. Some languages use a special keyword (e.g. ''void'') to indicate that the subroutine has no parameters; in formal Type Theory , such functions take an empty parameter list (whose type is not ''void'', but rather ''unit''). ARGUMENT PASSING The exact mechanism for assigning arguments to parameters, called ''argument passing,'' depends upon the Evaluation Strategy used for that parameter (typically call-by-value), which may be specified using keywords. Default arguments Some programming languages such as Windows PowerShell and Python allow for a Default Argument to be explicitly or implicity given in a subroutine's declaration. This allows the caller to omit that argument when calling the subroutine. If the default argument is explicitly given, then that value is used if it is not provided by the caller. If the default argument is implicit (sometimes by using a keyword such as ''Optional'') then the language provides a well-known value (such as '' Null '', ''Empty'', zero, an empty string, etc.) if a value is not provided by the caller. PowerShell example: function doc( = 1.21) { " gigawatts? gigawatts? Great Scott!" } PS> doc 1.21 gigawatts? 1.21 gigawatts? Great Scott! PS> doc 88 88 gigawatts? 88 gigawatts? Great Scott! Variable-length parameter lists Some languages allow subroutines to be defined to accept a Variable Number Of Arguments . For such languages, the subroutines must iterate through the list of arguments. PowerShell example: function marty { |
|
|