Modify ↓
Opened 12 years ago
Last modified 8 months ago
#2278 assigned Feature Request
Varargs
Reported by: | Mat | Owned by: | Jon |
---|---|---|---|
Milestone: | Component: | AutoIt | |
Version: | Severity: | None | |
Keywords: | varargs, params | Cc: |
Description
A syntax like C# would probably be the easiest, example would be:
Foo(42, 24, "Hello", "World", "!!!") Func Foo($x, $y, Params $bar) For $i = 0 To UBound($bar) - 1 ConsoleWrite($bar[$i] & @LF) Next EndFunc
Attachments (0)
Change History (6)
comment:1 follow-up: ↓ 4 Changed 12 years ago by trancexx
comment:2 Changed 11 years ago by Jon
- Resolution set to Rejected
- Status changed from new to closed
comment:3 Changed 11 years ago by Mat
- Resolution Rejected deleted
- Status changed from closed to reopened
comment:4 in reply to: ↑ 1 Changed 10 years ago by anonymous
I would suggest this syntax.
Func f (...$argArray) ; Use the argument array. EndFunc
It is done the same way in other languages.
// C++ template <typename... types> void f (types &&... argArray); template <int... sizes> void print (const char (&... arrayReferences) [sizes]); // JS function apply (f, ...argArray) { /* ... */ }
It would be useful to allow ByRef and Const before the ellipsis (_ArrayConcatenate (ByRef $to, Const ByRef ...$from)).
comment:5 Changed 4 years ago by Jpm
- Owner set to Jpm
- Status changed from reopened to assigned
I introduce a new keyword in Func() definition to allow handling the variable number of parameter
f(1, 2) Func f (ByVarArgs $argArray) For $i = 1 to @NumParams ; use $argArray[$i] Next EndFunc
Fix sent to Jon
comment:6 Changed 8 months ago by Jpm
- Owner changed from Jpm to Jon
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Note: See
TracTickets for help on using
tickets.
Maybe like this.