Dag Lui,
Ik ken heel wat programmeertalen , maar leer voor het eerst VBScript. De variabelen kennen "loose types" en dat brengt me een aantl vragen. In onderstaande code zou ik niet verwachten dat de variabele S opeens de waarde 0 heeft. Toch gebeurt het. Waarom? Ik snap hier geen bal van. Waarom werkt dit zo?
De uitvoer hiervan geeft:
Waarom heeft de variabele S tijdens de tweede functieaanroep de waarde 0 en niet de waarde "blabla"??
Ik ken heel wat programmeertalen , maar leer voor het eerst VBScript. De variabelen kennen "loose types" en dat brengt me een aantl vragen. In onderstaande code zou ik niet verwachten dat de variabele S opeens de waarde 0 heeft. Toch gebeurt het. Waarom? Ik snap hier geen bal van. Waarom werkt dit zo?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| ' Hoe converteer ik een variabele van onbekend type naar een integer?
' De variabele bevat een string OF een getal
dim i
sub Doewat(s)
if isNumeric(s) then
i = CInt(s)
else
WScript.Echo "S is niet numeriek"
i = 0
end if
WScript.Echo "s" , i, TypeName(s)
WScript.Echo "i", i, TypeName(i)
end sub
Doewat("45")
Doewat("blabla")
Doewat("45") |
De uitvoer hiervan geeft:
code:
1
2
3
4
5
6
7
8
9
10
11
| C:\Data\prog\vbscript>test Microsoft (R) Windows Script Host versie 5.6 Copyright (C) Microsoft Corporation 1996-2001. Alle rechten voorbehouden. s 45 String i 45 Integer S is niet numeriek s 0 String i 0 Integer s 45 String i 45 Integer |
Waarom heeft de variabele S tijdens de tweede functieaanroep de waarde 0 en niet de waarde "blabla"??