Avatar billede anjensen1 Novice
29. september 2006 - 11:49 Der er 8 kommentarer og
1 løsning

function name som boolean

Hejsa -sidder med noget vbs kode der er skrevet af en særdeles erfaren koder. Af den grund tror jeg ikke at det er sjusk / dumhed at han har lavet en !alv! sær konstruktion:
Jeg omskriver lidt for 'reasons':)

Function MoveToFolder(obj, Name)
    MoveToFolder = False
:
:
End Function

er der en vb funktionalitet ved at benævne en boolean det SAMME som en funktion ..eller er det bare en nomenklatur dumhed ;)

pfh tak!
Avatar billede plx Nybegynder
29. september 2006 - 11:51 #1
Det er den værdi funktionen skal returnere
Avatar billede plx Nybegynder
29. september 2006 - 11:52 #2
Flere andre sprog benyttes

return(false)

syntaksen
Avatar billede anjensen1 Novice
29. september 2006 - 12:03 #3
nej nej -jeg har udkommenteret en -masse- kode (de to :: ) der er ikke noget return fra funktionen. Den arbejder med en sql db i propiatært miljø. Det er ikke en return
men tak for rresponsen!
Avatar billede plx Nybegynder
29. september 2006 - 12:09 #4
MoveToFolder = False

har samme effekt som return, men afslutter ikke funktionen. så du kan godt have kode efterfølgende. Hvis den står øverst, kan den fungere som en default return værdi, hvis den ikke sætter igen længere nede
Avatar billede softspot Forsker
29. september 2006 - 13:08 #5
Det er helt legal VBS-kode.

Jeg forstår ikke problemet... er dit spørgsmål opstået fordi koden ikke opfører sig som den skal eller er det fordi du ikke forstår syntaksen?
Avatar billede softspot Forsker
29. september 2006 - 13:11 #6
Tag evt. et kig hos dem der har lavet sproget og se hvordan de anbefaler man gør. Her er et link du kan starte med (se i øvrigt eksemplet i bunden): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/0a8270d7-7d8f-4368-b2a7-065acb52fc54.asp?frame=true
Avatar billede anjensen1 Novice
29. september 2006 - 15:11 #7
neh jeg forstår godt syntaksen hvis ikke der er en speciel clever årsag til at genbruge en funktions navn som en boolean (og det er der vist ikke)
jeg vill gerne have set noget i retning af
Function MoveToFolder(obj, Name)
dim b_MovedToFolder ' as boolean
    b_MovedToFolder = False
:
:
End Function
stating en blind declare clause + type i dette typeløse 'sprog' via en prefix
Når der arbejdes med industrial size propiatære systemer bliver god syntax et must og sjusk kan lede til kolosalt tidsspild
Tak for jeres indputs!
Avatar billede softspot Forsker
29. september 2006 - 15:30 #8
Det kunne jo være at vedkommende udvikler havde prøvet at være fremsynet og ville returnere status på den operation til den der kalder funktionen og i det tilfælde er det jo rimeligt nok at bruge funktionens navn som lager for status (da der ikke umiddelbart er andre måder at returnere en værdi fra en funktion - med mindre man laver byref- eller objekter-parametre, hvilket jeg jo ikke synes er optimalt). Jo, man kunne da godt lave en lokal variabel som holdt status og så returnere værdien til sidst ved at tildele den funktionens navn, men den vigtigste regel at overholde, når man sidder med så store "industial size proprietary systems", er stringent at overholde en standard for hvordan man koder, også selvom det så indebærer at man laver lidt ekstra kode på steder hvor det måske ikke synes helt så nødvendigt eller optimalt.

Hvis du har så meget kode i dine "industial size proprietary systems" er det nok lidt risikabelt at ændre måden koden fungerer på, da du risikerer at du ødelægger noget andet kode som baserer sig på denne funktion (bare et godt råd fra en "simpleminded" udvikler)...

"If it works don't fix it!".
Avatar billede anjensen1 Novice
10. oktober 2006 - 10:19 #9
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester