[Gambas-user] Returning multiple values from a function
Benoit Minisini
gambas at ...1...
Thu Apr 3 11:46:30 CEST 2008
On jeudi 3 avril 2008, Rolf-Werner Eilert wrote:
> This is just the way I do it. But when I have more than 2 values to
> separate, I'll use another string[] to have them splitted (though I like
> to use a Tab (chr$(9)). This runs incredibly fast in Gambas.
>
> Let's assume you receive a string like "10|cat|male|black" I would do
>
> dim partstring as new string[]
>
> partstring = split(sResult, "|")
>
> 'and now you can examine the part-strings:
>
> if val(partstring[0]) = 10 then...
>
> if partstring[1] = "cat" then...
>
> Rolf
>
> Jaap Cramer schrieb:
> > When I need multiple returnvalues I use an array
> > Mostly of the string[] type.
> > When it contains different things, like an integer and a string, I put
> > them in 1 string, and split them
> >
> > sResult = DoSomething() ' call the function
> > result is "10|cat" ' i use a pipe to divide my string
> >
> > sInteger = val(left(sResult, instr(sResult, "|")-1))
> > sString = mid(sResult, instr(sResult, "|")+1)
> >
> > I think this should work...
> >
> > ----------------------------------------
> >
> >> From: rterry at ...1822...
> >> To: gambas-user at lists.sourceforge.net
> >> Date: Thu, 3 Apr 2008 13:37:48 +1100
> >> Subject: [Gambas-user] Returning multiple values from a function
> >>
> >> Hope this is not too ambiguous or dumb:
> >>
> >> Is it possible to return more than 1 value from a function?
> >>
> >>
> >> This works:
> >>
> >> function DoSomething(name as string) as integer[]
> >> Dim numbers as integer[2]
> >>
> >> 'do whatever in here
> >> numbers[0]=10
> >> numbers[1] = 20
> >> return numbers
> >>
> >>
> >> however seems a bit clumbsy
> >>
> >> doing this:
> >>
> >> function Dosomething(name as string) as integer,string
> >>
> >> REturn 10,"cat"
> >>
> >> Dosn't
> >>
> >> Probably a stupid question. I guess if you want back non identical types
> >> one would just use a variant array?
> >>
> >>
> >>
> >> thanks
> >>
> >> Richard
> >>
I think the better is using an array of Variant, or better an anoynmous array:
FUNCTION DoSomething(Name AS String) AS Array
DIM FirstResult AS ...
DIM SecondResult AS ...
' Do something
RETURN [FirstResult, SecondResult]
END
--
Benoit Minisini
More information about the User
mailing list