我正在尝试查找有关何时使用的信息[string[]]$MyStuff.这是一个字符数组,还是只包含显式字符串元素的数组,或者......?
我在脚本示例中看到过这种情况,但实际上并不清楚.我经常看到它用于接收某些非本机实用程序文本输出的变量,或者用作函数输入参数的数据类型.
这些额外括号是什么意思?
arc*_*444 18
它定义了一个字符串数组.考虑以下初始化数组的方法:
[PS] > [string[]]$s1 = "foo","bar","one","two",3,4
[PS] > $s2 = "foo","bar","one","two",3,4
[PS] > $s1.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array
[PS] > $s2.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Run Code Online (Sandbox Code Playgroud)
默认情况下,powershell数组是一个对象数组,如有必要,它将转换为特定类型.看看它是如何确定每种类型的第5个元素是什么类型:
[PS] > $s1[4].gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
[PS] > $s2[4].gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
[PS] > $s1[4]
3
[PS] > $s2[4]
3
Run Code Online (Sandbox Code Playgroud)
[string[]]创建时的使用$s1意味着3传递给数组的raw 已转换为String类型,与Int32存储在Object数组中时相反.
| 归档时间: |
|
| 查看次数: |
7479 次 |
| 最近记录: |