WoW:API for: Difference between revisions

mNo edit summary
m (Move page script moved page API for to API for without leaving a redirect)
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Stub/API|Needs a proper home; we generally don't document Lua language constructs here.}}
Native Lua statement:
Native Lua statement:


Line 5: Line 6:
Executes 'statements' for each value of 'variable' from 'lowvalue' to 'highvalue', at a step value of 'step' inclusive.  Other syntax options yet unknown.
Executes 'statements' for each value of 'variable' from 'lowvalue' to 'highvalue', at a step value of 'step' inclusive.  Other syntax options yet unknown.


  for [key],[value] in [table] do [statements] end
  for [key],[value] in pairs([table]) do [statements] end


Executes 'statements' for each element of the 'table'. 'key' contains element key (index), 'value' contains element value.
Executes 'statements' for each element of the 'table'. 'key' contains element key (index), 'value' contains element value.
Line 31: Line 32:


  /script myTable = {"a","b","c","d"};
  /script myTable = {"a","b","c","d"};
  for k,v in myTable do
  for k,v in pairs(myTable) do
       DEFAULT_CHAT_FRAME:AddMessage("The value of index "..k.." is "..v);
       DEFAULT_CHAT_FRAME:AddMessage("The value of index "..k.." is "..v);
  end;
  end;
Line 40: Line 41:
  The value of index 3 is c
  The value of index 3 is c
  The value of index 4 is d
  The value of index 4 is d
[[User:Tigerheart|Tigerheart]] 03:34, 3 Nov 2005 (EST) - Added info on [step]
[[User:Tigerheart|Tigerheart]] 15:10, 7 Feb 2006 (EST) - Added "for, in" syntax
[[User:Drundia|Drundia]] 20:47, 3 July 2006 (EDT) - One missing qutes, fixed "for v,k in t" to correct "for k,v in t"
{{LUA}}

Latest revision as of 04:45, 15 August 2023

Native Lua statement:

for [variable] = [lowvalue], [highvalue],[step] do [statements] end

Executes 'statements' for each value of 'variable' from 'lowvalue' to 'highvalue', at a step value of 'step' inclusive. Other syntax options yet unknown.

for [key],[value] in pairs([table]) do [statements] end

Executes 'statements' for each element of the 'table'. 'key' contains element key (index), 'value' contains element value.


Examples:

 /script for i=1,10 do DEFAULT_CHAT_FRAME:AddMessage(format("%d",i));end

More interesting example: (remember, all one line)

 /script for i=1,5 do
   name,description,standingID,barValue,atWarWith,canToggleAtWar,isHeader,isCollapsed=GetFactionInfo(i);
   DEFAULT_CHAT_FRAME:AddMessage(format("%s %d/%d",name,barValue*21000,21000));
 end


A few examples using the newly found <step> value:

/script for i=10,1,-1 do DEFAULT_CHAT_FRAME:AddMessage(format("%d",i));end

Will count from 10 to 1.

/script for i=10,0,-2 do DEFAULT_CHAT_FRAME:AddMessage(format("%d",i));end

Will count from 10 to 0 skipping every other number.

/script for i=2,10,2 do DEFAULT_CHAT_FRAME:AddMessage(format("%d",i));end

Will count even numbers from 2 to 10.

Examples for the 'in' version of the syntax:

/script myTable = {"a","b","c","d"};
for k,v in pairs(myTable) do
     DEFAULT_CHAT_FRAME:AddMessage("The value of index "..k.." is "..v);
end;

Output:

The value of index 1 is a
The value of index 2 is b
The value of index 3 is c
The value of index 4 is d