Gå til innhold

function og procedure


Anbefalte innlegg

Videoannonse
Annonse

For å bevare oversikten, er det viktig å vurdere hvorvidt en kode skal plasseres i en funksjon eller sub; avhengig av om den skal returnere informasjon eller ikke.

En matematisk-formel, ala følgende, gir mest mening om den plasseres i en funksjon.

 

Public Function Hypotenus(a As Double, b As Double) As Double

Hypotenus = sqr(a^2 + b^2)

End Function

 

Mens en slik kode blir mest "korrekt" om den plasseres i en sub:

 

Public Sub Log(sText As String)

Open App.Path & "\Log.txt" For Append As #1
Print #1, sText
Close #1

End Sub

 

Ettersom den ikke trenger å returnere en variabel. Om du f.eks legger inn en "error-handler", forholder det seg derimot annerledes:

 

Public Function Log(sText As String) As Long

On Error GoTo Feil

Open App.Path & "\Log.txt" For Append As #1
Print #1, sText
Close #1

Log = 0 ' Ingen feil

Exit Function
Feil:
Log = -1 ' Eller du kan returnere Err

End Sub

 

Men du trenger absolutt ikke bruke funskjoner. Du kan uten problemer legge inn en "input" variabel og en "output" variabel:

 

Public Sub Log(sText As String, Ret As Long)

On Error GoTo Feil

Open App.Path & "\Log.txt" For Append As #1
Print #1, sText
Close #1

Ret = 0 ' Ingen feil

Exit Function
Feil:
Ret = -1 ' Eller du kan returnere Err

End Sub

 

Den eneste forskjellen er derfor at funksjoner returnerer variabler direkte, mens sub ikke gjør det. Du er ikke hindret av dette, og sub kan utmerket godt returnere informasjon, men du tjener deg selv ved å bruke funskjoner når det virker passende.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...