PowerShell数组

数组

Powershell支持数组这种数据结构,但这种数组并不要求数据类型的一致性,更类似于其他语言中的列表。其创建过程非常简单,直接通过逗号分割元素即可,也可以通过【@()】将数组元素括起来。通过方括号可以索引数组元素,从而实现赋值等操作,当下标大于等于0时,将从0开始正向索引;当下标小于0时,将从-1开始,从数组最后一个元素开始索引。此外,数组还重载了运算符+和+=,可实现拼接操作。

$a = 1,2,3,"hello", "world"
$a[0]  # 1
$a[-1]  # world
$b = @(4,5,6)
$c = $a+$b
$c.Count    # 返回数组的长度 8

数组在创建和索引时,如用范围运算符【 . . .. ..】进行连接,就可以创建或索引一组连续的序列。例如,下面将创建 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 1,2,3,4,5,6,7,8,9 1,2,3,4,5,6,7,8,9,并索引其中的 345 3 4 5 345

$d = 1..9
$d[3..5]

多维数组

PowerShell支持多维数组,但在创建时,需要使用New-Object命令,下面分别创建一个 2 × 2 2\times2 2×2的矩阵和一个 3 × 3 × 3 3\times3\times3 3×3×3的张量,其元素个数分别是4和27。

$d22 = new-object "object[,]" 2,2
$d333 = new-object "object[,,]" 3,3,3

$d22.Count     # 4
$d333.Count    # 27

通过@符号嵌套也是一种创建多维数组的方法,但这个“维度”的含义将不那么直观,将其称作嵌套列表显然更加合适。

遍历

Powershell提供了foreach语句,可用于遍历数组中的内容,是循环语句的重要补充,示例如下

foreach($i in $c){
   echo $i
}

# 将依次打印$c中的内容 1 2 3 hello world 4 5 6

此外,数组也内置了foreach方法,用于对数组中的每个元素予以相同的操作,例如对数组中每个值取平方,让$$d$的值变为 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 1,4,9,16,25,36,49,64,81 1,4,9,16,25,36,49,64,81,示例如下,其中$$_$就表示从数组中取来并参与循环的值。

$e = $d.foreach{$_ * $_}

查找

【where】方法可实现数组的查找,其输入参数和foreach相似,都是一组表达式,其返回值是让表达式为真的值。例如,希望查找$$e$中所有小于10的值,则可进行如下操作

$e.where{$_ -le 10}  # 返回1, 4, 9
$e.where({$_ -le 10}, "first")  # 返回1
$e.where({$_ -le 10}, 2)  # 返回9

其中,first和2均为where的参数,表示下面的五种模式

  • 【0】Default 返回所有项
  • 【1】First 返回第一个项
  • 【2】Last 返回最后一个项
  • 【3】SkipUntil 跳过项,直到条件为 true,返回所有剩余项
  • 【4】Until 返回所有项,直到条件为 true

相关推荐

  1. PowerShell数组

    2024-03-31 15:20:03       37 阅读
  2. powerShell相关

    2024-03-31 15:20:03       19 阅读
  3. nvm pnpm powershell

    2024-03-31 15:20:03       33 阅读
  4. Powershell 使用介绍

    2024-03-31 15:20:03       24 阅读
  5. IDM激活_powershelll

    2024-03-31 15:20:03       33 阅读
  6. powershell执行策略不受限制

    2024-03-31 15:20:03       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 15:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 15:20:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 15:20:03       82 阅读
  4. Python语言-面向对象

    2024-03-31 15:20:03       91 阅读

热门阅读

  1. Log4j远程代码执行

    2024-03-31 15:20:03       29 阅读
  2. Redisson兼容redis多模式部署的配置方式

    2024-03-31 15:20:03       38 阅读
  3. 【微服务篇】深入理解分布式消息队列系统

    2024-03-31 15:20:03       38 阅读
  4. mybatis EXISTS

    2024-03-31 15:20:03       32 阅读
  5. 深入理解zookeeper

    2024-03-31 15:20:03       40 阅读
  6. git 基于当前分支创建新分支

    2024-03-31 15:20:03       35 阅读
  7. sql-学习-day1

    2024-03-31 15:20:03       38 阅读
  8. Flutter开发的Web应用 构建及部署 标准流程指南

    2024-03-31 15:20:03       31 阅读
  9. Github 2024-03-27C开源项目日报Top10

    2024-03-31 15:20:03       36 阅读
  10. go 安装

    2024-03-31 15:20:03       34 阅读
  11. LeetCode热题Hot100 - 寻找两个正序数组的中位数

    2024-03-31 15:20:03       40 阅读
  12. Go-JWT完整示例

    2024-03-31 15:20:03       40 阅读
  13. c语音函数大全(V开头)

    2024-03-31 15:20:03       35 阅读
  14. Qt QOSG学习网站推荐

    2024-03-31 15:20:03       40 阅读