如何一起初始化多个变量?
How to initialize multiple variables together?
我需要在 VBScript 中用相同的值初始化几个变量。我能找到的唯一方法是例如 x = 5 : y = 5 : z = 5
。有没有类似x = y = z = 5
的方法?
VBScript 不支持多重赋值。声明
x = y = z = 5
将像这样计算(使用 :=
作为赋值运算符和 ==
作为比较运算符的伪代码,以更好地说明正在发生的事情):
x := ((y == z) == 5)
x := ((Empty == Empty) == 5)
x := (True == 5)
x := False
因此,变量 x
将被分配值 False
,而其他变量(y
和 z
)保持为空。
示范:
>>> <b>x = y = z = 5</b>
>>> <b>WScript.Echo 类型名称(x)</b>
布尔值
>>> <b>WScript.Echo "" & x</b>
错误的
>>> <b>WScript.Echo TypeName(y)</b>
空的
>>> <b>WScript.Echo TypeName(z)</b>
空
声明
x = 5 : y = 5 : z = 5
不是真正的多重赋值。这只是写 3 条语句的一种方式
x = 5
y = 5
z = 5
在一行中(在 VBScript 中冒号将语句彼此分开)。
构造x = y = z = 5
适用于赋值表达式return赋值的语言,即在先前赋值中使用的值,....
但是在 VBScript 中,赋值表达式 return 没有任何值,所以你不能这样做。
但是如果要求只在一行中给变量赋值并且只指定一次值,则可以使用标准的三个分隔语句
x = 5 : y = x : z = x
或者做类似的事情(是的,我知道,它效率不高而且不漂亮,它只是完成了工作)
Option Explicit
Function S(ByRef variable, value)
If IsObject( value ) Then
Set variable = value
Set S = value
Else
variable = value
S = value
End If
End Function
Dim x, y, z
Call S(x, S(y, S(z, 5)))
WScript.Echo x & " " & y & " " & z
我需要在 VBScript 中用相同的值初始化几个变量。我能找到的唯一方法是例如 x = 5 : y = 5 : z = 5
。有没有类似x = y = z = 5
的方法?
VBScript 不支持多重赋值。声明
x = y = z = 5
将像这样计算(使用 :=
作为赋值运算符和 ==
作为比较运算符的伪代码,以更好地说明正在发生的事情):
x := ((y == z) == 5)
x := ((Empty == Empty) == 5)
x := (True == 5)
x := False
因此,变量 x
将被分配值 False
,而其他变量(y
和 z
)保持为空。
示范:
>>> <b>x = y = z = 5</b>
>>> <b>WScript.Echo 类型名称(x)</b>
布尔值
>>> <b>WScript.Echo "" & x</b>
错误的
>>> <b>WScript.Echo TypeName(y)</b>
空的
>>> <b>WScript.Echo TypeName(z)</b>
空
声明
x = 5 : y = 5 : z = 5
不是真正的多重赋值。这只是写 3 条语句的一种方式
x = 5
y = 5
z = 5
在一行中(在 VBScript 中冒号将语句彼此分开)。
构造x = y = z = 5
适用于赋值表达式return赋值的语言,即在先前赋值中使用的值,....
但是在 VBScript 中,赋值表达式 return 没有任何值,所以你不能这样做。
但是如果要求只在一行中给变量赋值并且只指定一次值,则可以使用标准的三个分隔语句
x = 5 : y = x : z = x
或者做类似的事情(是的,我知道,它效率不高而且不漂亮,它只是完成了工作)
Option Explicit
Function S(ByRef variable, value)
If IsObject( value ) Then
Set variable = value
Set S = value
Else
variable = value
S = value
End If
End Function
Dim x, y, z
Call S(x, S(y, S(z, 5)))
WScript.Echo x & " " & y & " " & z