List (Stringlist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
Line 10: Line 10:
<td>A declared or existing <var>stringlist</var> object.</td></tr>
<td>A declared or existing <var>stringlist</var> object.</td></tr>
<tr><th nowrap="true">%(Stringlist)</th>
<tr><th nowrap="true">%(Stringlist)</th>
<td>The class name in parentheses denotes a shared method. <var>List</var> can also be invoked via a <var>Stringlist</var> object variable, which may be null.</td></tr>
<td>The class name in parentheses denotes a ÝÝNotation conventions for methods#Shared methods|shared¨¨ method. <var>List</var> can also be invoked via a <var>Stringlist</var> object variable, which may be null.</td></tr>
<tr><th>itemList</th>
<tr><th>itemList</th>
<td>A comma-delimited set of strings, each of which, from left to right, becomes an item in the resultant new <var>Stringlist</var>, <var class="term">%newlist</var>.
<td>A comma-delimited set of strings, each of which, from left to right, becomes an item in the resultant new <var>Stringlist</var>, <var class="term">%newlist</var>.

Revision as of 20:38, 1 July 2011

Construct a new Stringlist from list of strings (Stringlist class)


This shared function is a virtual constructor, or factory method, for Stringlists. List invokes the creation of a new Stringlist instance, then populates that instance with items that are, respectively, the values of the method arguments.

Syntax

%newList = [%(Stringlist):]List( itemList)

Syntax terms

%newlist A declared or existing stringlist object.
%(Stringlist) The class name in parentheses denotes a ÝÝNotation conventions for methods#Shared methods|shared¨¨ method. List can also be invoked via a Stringlist object variable, which may be null.
itemList A comma-delimited set of strings, each of which, from left to right, becomes an item in the resultant new Stringlist, %newlist. Under Sirius Mods 7.9 and later, the items in the list could themselves be Stringlists, in which case each item in the input Stringlist is added to the target Stringlist.

Usage notes

  • list requires at least one argument, which may be null.
  • If an existing stringlist is set to receive the result of list, then any existing item(s) in that stringlist are entirely removed before the new item(s) are added.
  • For more information about factory methods, see Virtual Constructor methods.
  • The maximum number of itemList values is 62.

Examples

  1. List is a constructor and as such can be called with no method object, with an explicit class name, or with an object variable, even if that object is null:

    %sl = list(itemlist) %sl = %(Stringlist):list(itemlist) %sl = %sl2:list(itemlist)

  2. The following list method call creates a new stringlist instance whose three items are, respectively, the strings Moe, Larry, and Curly:

    %sl is object stringlist %sl = list('Moe', 'Larry', 'Curly')

  3. The following list method call creates a new Stringlist instance whose first three items are, respectively, the strings Moe, Larry, and Curly, and then contains a copy of all the items in Stringlist %sl2:

    %sl is object stringlist %sl2 is object stringlist global %sl = list('Moe', 'Larry', 'Curly', %sl2)

  4. You can use the list method in contexts where a stringlist is a method parameter. For example, the Run method of the Daemon class takes a stringlist object as an argument. A list method call can be used for such an argument, as shown below:

    %d is object daemon ... %d:run(%(stringlist):list('*LOWER', 'b', - 'printText Whatever', 'printText More', 'end')):print

    However, in this example, it is necessary above to specify the class %(Stringlist): preceding the keyword list, because strings are also valid in the first argument for Run, and list; without a qualifier it could be interpreted as a field called list.
  5. In cases where a stringlist argument is expected, you can specify the List keyword without a qualifier. For example, a user method called Stuffit takes a stringlist input:

    %foo:stuffit(list('Hickory', 'Dickory', 'Doc'))

See also