Powershell数组一般具有多态性,如果你不指定元素的具体类型,解释器会自动选择合适的类型存储每个元素。如果要统一限制所有元素的类型,可是使用类型名和一对方括号作为数组变量的类型。这样每当赋值时,会自动类型检查。如果目标数据类型不能转换成功,就会抛出一个异常。
PS C:Powershell> [int[]] $nums=@() PS C:Powershell> $nums+=2012 PS C:Powershell> $nums+=12.3 PS C:Powershell> $nums+="999" PS C:Powershell> $nums+="can not convert" Cannot convert value "can not convert" to type "System.Int32". Error: "Input string was not in a correct format." At line:1 char:6 + $nums <<<< +="can not convert" + CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException + FullyQualifiedErrorId : RuntimeException
本文链接: https://www.pstips.net/powershell-strong-typed-array.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
除了2012难道其他的可以追加吗
如果不指定强类型,还是可以的,比如:
PS> $nums=@()
PS> $nums += 2013
PS> $nums += IpConfig
PS> $nums
2013
Windows IP 配置
以太网适配器 本地连接:
连接特定的 DNS 后缀 . . . . . . . : http://www.pstips.net