webForumDet fria alternativet

Function fråga

7 svar · 278 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#1

Halåjs!
Fundering: kan man skicka tillbaka fler än ett värde från en function?
Skulle behöva typ:

Function doStuff(par1, par2, par3)
'Gör lite olika roliga saker
doStuff = true, blabliblobla
End Function
@ndersMedlem sedan juni 200026 914 inlägg
#2

Du kan använda ByRef-parametrar i interfacet.

Function doStuff(ByVal var1, ByRef var2)
'Gör lite olika roliga saker
var2 = "ettellerannat"
doStuff = true
End Function

Ungefärligen.

Mvh,

doggelitoMedlem sedan juni 20003 100 inlägg
#3

aha, behöver man inte använda funktionsnamnet för att skicka tillbaka värden alltså!
kan man skriva:

Function doStuff(ByVal var1, ByRef var2)
'Gör lite olika roliga saker
var1 = "hej vare går"
var2 = "ettellerannat"
End Function
doggelitoMedlem sedan juni 20003 100 inlägg
#4

fast med byref då så klart och inte byval som jag skrev ovan. :)

LarsGMedlem sedan dec. 200012 465 inlägg
#5

En funktion skall inte ha några sidoeffekter.

Om du vill returnera flera värden så

stoppa in dom i en array och returnera den

eller

använd en sub

doggelitoMedlem sedan juni 20003 100 inlägg
#6

yes maza!
vid sub, gör man då enligt förslagen ovan, eller hur returnerar man då?

GeinMedlem sedan sep. 20004 849 inlägg
#7

LarsG skrev:

En funktion skall inte ha några sidoeffekter.

Det där gäller ju inte generellt iaf, jag programmerar SML på kursen jag går och där utnyttjar man "side-effects" ibland.
I detta fall har du säkert rätt.

doggelitoMedlem sedan juni 20003 100 inlägg
#8

Hur bör jag bygga i detta cenario:
Jag har ett formulär på en asp-sida där man laddar upp en bild samt lägger in text i databas.
Jag vill inte bygga ihop bild och text till en sub utan vill ha dem separerad utifall jag bara vill skicka upp en bild nån gång eller bara vill skriva in text, alltså:

Sub Upload_file()
Filename = Upload.Form(File)
If Not Filename = "" Then
[i]'Uppladdningsscript[/i]
End If
End Sub

Sub Insert_text()
[i]'Lägger in text med bla. filnamnet från sub ovan, men hur?[/i]
End Sub

För att få in filnamnet så lär jag väl skicka in det som en
parameter i Insert_text men eftersom en sub inte returnerar
något så bör väl Upload_file vara en function istället, eller?
Hur åtgärdar jag om Filname är "", då körs inte uploadscriptet och
då ska heller inte inserten köras, min tanke var:

Function Upload_file()
isOk = False
Filename = Upload.Form(File)
If Not Filename = "" Then
isOk = True
[i]'Uppladdningsscript[/i]
End If
Upload_file = isOk, Filename
End Function

If Upload_file Then Call Insert_text(Filename)

Så här får man ju inte skriva, hur borde jag göra???

Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb