digitalmars.D.learn - Arguments of function as an array.
- Jonathan (19/19) Apr 26 2018 Is there a way in D to take past arguments as an array? A like a
- ag0aep6g (5/29) Apr 26 2018 void fun(int[] intArray ...) {}
- Jonathan M Davis (7/26) Apr 26 2018 For better or worse, D has multiple types of variadic functions. Variadi...
Is there a way in D to take past arguments as an array? A like a normal Variadic function. All the arguments should be of the same type just as an array. Basically I want to allow a function like this to be called without square brackets. void fun(int[] intArray) { //... } void main() { fun([5,6,4]); } Like this: void fun(int... intArray) { //typeof(intArray) is `int[]` } void main() { fun(5,6,4); } Is this doable in D?
Apr 26 2018
On 04/26/2018 11:28 PM, Jonathan wrote:Is there a way in D to take past arguments as an array? A like a normal Variadic function. All the arguments should be of the same type just as an array. Basically I want to allow a function like this to be called without square brackets. void fun(int[] intArray) { //... } void main() { fun([5,6,4]); } Like this: void fun(int... intArray) { //typeof(intArray) is `int[]` } void main() { fun(5,6,4); } Is this doable in D?void fun(int[] intArray ...) {} https://dlang.org/spec/function.html#typesafe_variadic_functions Note that such an array is not garbage collected. It's a slice of the stack. Don't return it from the function.
Apr 26 2018
On Thursday, April 26, 2018 21:28:27 Jonathan via Digitalmars-d-learn wrote:Is there a way in D to take past arguments as an array? A like a normal Variadic function. All the arguments should be of the same type just as an array. Basically I want to allow a function like this to be called without square brackets. void fun(int[] intArray) { //... } void main() { fun([5,6,4]); } Like this: void fun(int... intArray) { //typeof(intArray) is `int[]` } void main() { fun(5,6,4); } Is this doable in D?For better or worse, D has multiple types of variadic functions. Variadic templated functions are almost certainly the most commonly used, but what the spec calls "typesafe variadic functions" result in a dynamic array like what you're talking about: https://dlang.org/spec/function.html#typesafe_variadic_functions - Jonathan M Davis
Apr 26 2018