如何定义严格类型的整数数组变量(非标量或字符串数组)?
如何在PowerShell中定义严格类型的整数数组
当然可以,PowerShell提供了两种常用方式来定义严格类型的整数数组,确保数组仅能存储整数类型元素:
1. 静态强类型数组(固定大小)
直接使用[int[]](或完整类型[System.Int32[]],int是System.Int32的别名)声明变量,这是最直接的静态强类型数组定义方式:
# 初始化包含整数的强类型数组 [int[]]$strictIntArray = 1, 3, 5, 7 # 尝试添加非整数元素会触发类型转换失败(无法转为整数则直接报错) # 示例:以下代码会报错,因字符串"abc"无法转换为整数 # $strictIntArray += "abc"
这类数组大小固定,添加元素时会创建新数组;所有元素必须是(或可隐式转换为)整数,不符合要求的赋值会直接抛出错误。
2. 泛型列表(动态强类型集合)
如果需要支持动态添加/删除元素的强类型整数集合,可以使用[System.Collections.Generic.List[int]],它会严格限制仅能存储整数:
# 创建空的强类型整数列表 $intList = [System.Collections.Generic.List[int]]::new() # 添加整数元素 $intList.Add(2) $intList.Add(4) # 尝试添加非整数元素会直接报错 # 示例:以下代码报错,无法将字符串"test"转为int类型 # $intList.Add("test")
泛型列表比静态数组更灵活,支持动态调整大小,同时保持强类型约束。
注意:
[System.Array]是所有数组的基类,它本身并非特定类型的强类型数组,要实现整数专属的强类型约束,必须使用上述针对int类型的数组/集合声明方式。
内容的提问来源于stack exchange,提问作者Keith Howard
相关产品推荐
相关产品推荐

