|
| Funktion og Sub Fra : Ryan |
Dato : 13-05-03 23:39 |
|
Hej.
Jeg har efterhånden fået lavet en meget lang og enormt uoverskuelig kode.
Så nu har jeg pludselig fået interesse for brugen af funktioner og 'sub'.
Hvad er forskellen på disse to?
Og hvis man laver en funktion som dette:
Function funktionsnavn(variabelnavn)
a = variabelnavn +1
b= variabelnavn -1
End Function
Er det så muligt, at at få både a og b ud som hver sin variabel?
--
Ryan
| |
Jesper Stocholm (14-05-2003)
| Kommentar Fra : Jesper Stocholm |
Dato : 14-05-03 07:12 |
|
Ryan wrote :
> Jeg har efterhånden fået lavet en meget lang og enormt uoverskuelig
> kode. Så nu har jeg pludselig fået interesse for brugen af funktioner
> og 'sub'.
>
> Hvad er forskellen på disse to?
En sub er en runtine, hvorimod en function er en funktion, der
returnerer en værdi.
> Og hvis man laver en funktion som dette:
> Function funktionsnavn(variabelnavn)
> a = variabelnavn +1
> b= variabelnavn -1
> End Function
> Er det så muligt, at at få både a og b ud som hver sin variabel?
Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den anden
fx
function doStuff
dim a,b
a = 1
b = a+1
doStuff = b
end function
Response.write doStuff
I .Net kan en metode returnere et array (og alt muligt andet), men jeg
er usikker på, om det kan lade sig gøre i alm ASP.
--
Jesper Stocholm - http://stocholm.dk
if you are competing with the darknet, you must compete on the darknet's
own terms: that is convenience and low cost rather than additional
security. ( http://crypto.stanford.edu/DRM2002/darknet5.doc )
| |
Thomas Due (14-05-2003)
| Kommentar Fra : Thomas Due |
Dato : 14-05-03 07:24 |
|
Jesper Stocholm wrote:
> > Er det så muligt, at at få både a og b ud som hver sin variabel?
>
> Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den
> anden fx
[SNIP]
> I .Net kan en metode returnere et array (og alt muligt andet), men jeg
> er usikker på, om det kan lade sig gøre i alm ASP.
>
>
Der findes ikke var parametre i ASP?
--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
XanaNews: 1.15.1.1
| |
Jesper Stocholm (14-05-2003)
| Kommentar Fra : Jesper Stocholm |
Dato : 14-05-03 07:36 |
|
Thomas Due wrote :
> Jesper Stocholm wrote:
>
>> > Er det så muligt, at at få både a og b ud som hver sin variabel?
>>
>> Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den
>> anden fx
> [SNIP]
>> I .Net kan en metode returnere et array (og alt muligt andet), men jeg
>> er usikker på, om det kan lade sig gøre i alm ASP.
>>
>>
>
> Der findes ikke var parametre i ASP?
Om der findes parametre .. ? altså om man kan gøre dette ?
function doStuff(withthis)
doStuff = withthis
end function
Response.write doStuff("Jesper")
?
Det kan man godt ... :)
--
Jesper Stocholm - www.stocholm.dk
Giv et bud på et nyt design til Polyteknisk Forenings hjemmeside.
Se konkurrencen på www.pf.dtu.dk/webdesign
| |
Thomas Due (14-05-2003)
| Kommentar Fra : Thomas Due |
Dato : 14-05-03 08:03 |
|
Jesper Stocholm wrote:
> Om der findes parametre .. ? altså om man kan gøre dette ?
>
> function doStuff(withthis)
> doStuff = withthis
> end function
>
> Response.write doStuff("Jesper")
Nej, ikke helt. Jeg er godt klar over at man sende parametre ind i en
sub og en funktion. Det jeg mente var
"var" parametre. Altså parametre som sendes ind i funktionen, ændres og
sendes ud igen. F.eks.
a = 1
function ChangeA(VarA)
VarA = 2
ChangeA = VarA
end function
response.write a ' resultat: a = 1
response.write ChangeA(a) ' resultat: a = 2
response.write a ' resultat: a = 2
--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews 1.15.2.1
| |
Jesper Stocholm (14-05-2003)
| Kommentar Fra : Jesper Stocholm |
Dato : 14-05-03 08:05 |
|
Thomas Due wrote :
> Jesper Stocholm wrote:
>
>> Om der findes parametre .. ? altså om man kan gøre dette ?
>>
>> function doStuff(withthis)
>> doStuff = withthis
>> end function
>>
>> Response.write doStuff("Jesper")
>
> Nej, ikke helt. Jeg er godt klar over at man sende parametre ind i en
> sub og en funktion. Det jeg mente var
> "var" parametre. Altså parametre som sendes ind i funktionen, ændres og
> sendes ud igen. F.eks.
>
> a = 1
>
> function ChangeA(VarA)
> VarA = 2
> ChangeA = VarA
> end function
>
> response.write a ' resultat: a = 1
> response.write ChangeA(a) ' resultat: a = 2
> response.write a ' resultat: a = 2
Nu er ASP/VBs jo typefrit/løst, men jeg skal ikke kunne sige, om det kan
lade sig gøre. Du kunne jo prøve ad :) Som et VBscript tager det jo ikke
lang tid at teste.
--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk: FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html: Skriv under det du svarer på
Svar venligt til gruppen og ikke til mig privat !
| |
Ryan Dahl (14-05-2003)
| Kommentar Fra : Ryan Dahl |
Dato : 14-05-03 15:51 |
|
On Wed, 14 May 2003 07:05:09 +0000 (UTC), Jesper Stocholm
<j@stocholm.invalid> wrote:
>Thomas Due wrote :
>
>> "var" parametre. Altså parametre som sendes ind i funktionen, ændres og
>> sendes ud igen. F.eks.
>>
>> a = 1
>>
>> function ChangeA(VarA)
>> VarA = 2
>> ChangeA = VarA
>> end function
>>
>> response.write a ' resultat: a = 1
>> response.write ChangeA(a) ' resultat: a = 2
>> response.write a ' resultat: a = 2
>
Hej,
jeg har lige et par (forhåbentlig nyttige) kommentarer...
1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den kan
også være multidimensional hvis man har det behov.
2. Brug evt. byRef foran parametrene, når man kalder en funktion. Det
medfører dog at parametrene (variblerne i den kaldende funktion)
bliver ændret i takt med at man manipulerer dem i sin funktion. Hvis
man benytter byRef kan man altså ændre flere variable på én gang.
mvh
Ryan
| |
Torben Brandt (15-05-2003)
| Kommentar Fra : Torben Brandt |
Dato : 15-05-03 00:28 |
|
Ryan Dahl wrote:
>>Thomas Due wrote :
>>
>>
>>>"var" parametre. Altså parametre som sendes ind i funktionen, ændres og
>>>sendes ud igen. F.eks.
>>>
>>>a = 1
>>>
>>>function ChangeA(VarA)
>>> VarA = 2
>>> ChangeA = VarA
>>>end function
>>>
>>>response.write a ' resultat: a = 1
>>>response.write ChangeA(a) ' resultat: a = 2
>>>response.write a ' resultat: a = 2
>>
>
> 2. Brug evt. byRef foran parametrene, når man kalder en funktion. Det
> medfører dog at parametrene (variblerne i den kaldende funktion)
> bliver ændret i takt med at man manipulerer dem i sin funktion. Hvis
> man benytter byRef kan man altså ændre flere variable på én gang.
Det modsatte af ByRef er ByVal.
Iflg ovenstående eksempel ser det ud til at ByRef er default, hvis man
ikke skriver "function ChangeA(ByVal VarA)"
/Torben
| |
Ryan (15-05-2003)
| Kommentar Fra : Ryan |
Dato : 15-05-03 11:56 |
|
> 1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den kan
> også være multidimensional hvis man har det behov.
Det har jeg også tænkt på at gøre, men det havde jo været lidt smartere,
hvis man kunne returnere mere end én værdi, så man ikke senere skal til at
splitte resultatet, for at få de værdier man skal bruge.
--
Ryan
| |
Jesper Stocholm (15-05-2003)
| Kommentar Fra : Jesper Stocholm |
Dato : 15-05-03 14:03 |
|
Ryan wrote :
>> 1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den
>> kan også være multidimensional hvis man har det behov.
>
> Det har jeg også tænkt på at gøre, men det havde jo været lidt
> smartere, hvis man kunne returnere mere end én værdi, så man ikke
> senere skal til at splitte resultatet, for at få de værdier man skal
> bruge.
så kan du jo gøre som det bliver foreslået - nemlig at returnere et array.
I øvrigt kan jeg ikke lige på stående fod komme i tanke om sprog, hvor en
metode kan returnere to værdier - hvis de ikke er i et array.
--
Jesper Stocholm - http://stocholm.dk
Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html
| |
Ryan Dahl (16-05-2003)
| Kommentar Fra : Ryan Dahl |
Dato : 16-05-03 08:24 |
|
On Thu, 15 May 2003 12:56:05 +0200, "Ryan" <ryan@NOSPAM.dk> wrote:
>Det har jeg også tænkt på at gøre, men det havde jo været lidt smartere,
>hvis man kunne returnere mere end én værdi, så man ikke senere skal til at
>splitte resultatet, for at få de værdier man skal bruge.
Hej,
som nævnt kunne man også bruge byRef. Du får lige et eksempel...
<%
public sub Omregn(byref a, byref b)
a = a + 1
b = b + 3
end sub
dim tal1, tal2
tal1 = 1
tal2 = 1
call Omregn(tal1, tal2)
Response.Write("Tal 1 er nu: " & tal1 & ", tal 2 er: " & tal2)
%>
mvh
Ryan
| |
Ryan (16-05-2003)
| Kommentar Fra : Ryan |
Dato : 16-05-03 14:37 |
|
> som nævnt kunne man også bruge byRef. Du får lige et eksempel...
Tak for det. Det er vist noget jeg kan bruge
--
Ryan
| |
|
|