digitalmars.D.learn - Passing array as an function argument.
Hi All, Can some one help me on how to pass a container array as a function argument , the below code throws an error, Error: Error: function T3.Test2 (Array!string t1) is not callable using argument types (RangeT!(Array!string)) import std.stdio: writeln; import std.container; auto Test2 (Array!string t1) { return t1; } auto Test1 () { auto Fs = Array!string("C:\\Temp\\TEST1\\BACKUP", "C:\\Temp\\TEST2\\EXPORT"); return Fs[]; } void main () { auto t1 = Test1[]; Test2(t1); } From, Vino.B
Sep 11 2017
On Monday, 11 September 2017 at 11:58:18 UTC, Vino.B wrote:Hi All, Can some one help me on how to pass a container array as a function argument , the below code throws an error, Error: Error: function T3.Test2 (Array!string t1) is not callable using argument types (RangeT!(Array!string)) import std.stdio: writeln; import std.container; auto Test2 (Array!string t1) { return t1; } auto Test1 () { auto Fs = Array!string("C:\\Temp\\TEST1\\BACKUP", "C:\\Temp\\TEST2\\EXPORT"); return Fs[]; } void main () { auto t1 = Test1[]; Test2(t1); } From, Vino.BThe type returned from Test1() is a `RangeT!(Array!string)`. This is due to the `[]` on the end of `Fs[]`. Remove the `[]` to just return a `Array!string`.
Sep 11 2017
On Monday, 11 September 2017 at 12:03:32 UTC, wobbles wrote:On Monday, 11 September 2017 at 11:58:18 UTC, Vino.B wrote:Hi, If i remove the `[]` at the end of `Fs[]` I am getting the same error, if i remove the `[]` from the file "auto t1 = Test1[];" the out is empty. From, Vino.BHi All, Can some one help me on how to pass a container array as a function argument , the below code throws an error, Error: Error: function T3.Test2 (Array!string t1) is not callable using argument types (RangeT!(Array!string)) import std.stdio: writeln; import std.container; auto Test2 (Array!string t1) { return t1; } auto Test1 () { auto Fs = Array!string("C:\\Temp\\TEST1\\BACKUP", "C:\\Temp\\TEST2\\EXPORT"); return Fs[]; } void main () { auto t1 = Test1[]; Test2(t1); } From, Vino.BThe type returned from Test1() is a `RangeT!(Array!string)`. This is due to the `[]` on the end of `Fs[]`. Remove the `[]` to just return a `Array!string`.
Sep 11 2017
On Monday, 11 September 2017 at 12:20:08 UTC, Vino.B wrote:On Monday, 11 September 2017 at 12:03:32 UTC, wobbles wrote:This works: https://dpaste.dzfl.pl/1fd9021739adOn Monday, 11 September 2017 at 11:58:18 UTC, Vino.B wrote:Hi, If i remove the `[]` at the end of `Fs[]` I am getting the same error, if i remove the `[]` from the file "auto t1 = Test1[];" the out is empty. From, Vino.B[...]The type returned from Test1() is a `RangeT!(Array!string)`. This is due to the `[]` on the end of `Fs[]`. Remove the `[]` to just return a `Array!string`.
Sep 11 2017
On Monday, 11 September 2017 at 12:44:00 UTC, wobbles wrote:On Monday, 11 September 2017 at 12:20:08 UTC, Vino.B wrote:Hi Wobbles, Thank you very much, that solved my problem. From, Vino.BOn Monday, 11 September 2017 at 12:03:32 UTC, wobbles wrote:This works: https://dpaste.dzfl.pl/1fd9021739adOn Monday, 11 September 2017 at 11:58:18 UTC, Vino.B wrote:Hi, If i remove the `[]` at the end of `Fs[]` I am getting the same error, if i remove the `[]` from the file "auto t1 = Test1[];" the out is empty. From, Vino.B[...]The type returned from Test1() is a `RangeT!(Array!string)`. This is due to the `[]` on the end of `Fs[]`. Remove the `[]` to just return a `Array!string`.
Sep 11 2017