当前位置: 首页 > 编程笔记 >

PowerShell中定义多个变量并赋值的例子

王宜
2023-03-14
本文向大家介绍PowerShell中定义多个变量并赋值的例子,包括了PowerShell中定义多个变量并赋值的例子的使用技巧和注意事项,需要的朋友参考一下

所谓赋值语句,小编在最早学C语言时就知道那就是“a=1;”。这么多年来,虽然语言在变,但赋值语句基本没变过。但今天在看一串PowerShell代码的时候,这种理念被推翻了。小编看到了多变量同时赋值的语句。

小编看到的语句是这样的:

$a[0],$a[1]=$a[0],$a[1];

大家来猜猜它是什么意思?

其实很好猜,第一眼看上去就像是把$a[0]和$a[1]这两个数组元素颠倒。而事实上的效果也是这样的。难道说这就是两个变量互换值的语句吗?我们知道在传统的编程语言里面,要把两个变量的值交换,至少需要三个语句,还需要一个中间变量的。比如要把a与b的值交换,那么代码应该这样写:

c=a;a=b;b=c;

这里的c是新增加出来的一个变量。这样看来,PowerShell还真TMD强大啊!

小编还异想天开的做了一些尝试,发现原来这个语法不仅仅颠倒两个值那么简单。比如:


PS> $a=1,2,3

PS> $a[0],$a[1],$a[2]=$a[1],$a[2],$a[0];

PS> -join $a

231

看见没有,把数组元素的值,转了一圈。

小编还做了这样一个测试:

PS> $a, $b=1,2

PS> $a

1

PS> $b

2

相当于是对照等号的前后,按顺序逐个赋值。很好理解吧!再看看下面这个:

PS C:\Users\hong> $a, $b=1,2,3

PS C:\Users\hong> $a

1

PS C:\Users\hong> $b

2

3

哈哈,这个有趣了。前面是两个变量,后面是三个值。那PowerShell会把它们怎么办呢。根据结果所示,$a赋值了1,$b被当成了数组,赋值了2和3。

所以小编把这个语法称之为“多变量同时赋值”,就是把多个变量同时赋值,当然赋值中存在一些细节,已经在上面的例子中展示了。

最后有人一定想问,如果变量个数多于值的个数,会是什么样的结果呢?呵呵,看看:

PS C:\Users\hong> $a, $b,$c,$d=1,2,3

PS C:\Users\hong> $d

PS C:\Users\hong>

 类似资料:
  • 本文向大家介绍PowerShell中定义多行字符串变量的方法,包括了PowerShell中定义多行字符串变量的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell中如何定义一个跨多行的字符串变量,定义多行字符串时使用@"开始,使用"@结束。 有没有遇到这样一种情况,我们想创建一个变量来保存一个跨行的字符串。 是不是对怎么输入很头疼啊?其它编程语言有没有办法我不知道,但在Pow

  • 编程最简单的算法之一,莫过于变量交换。交换变量的常见算法需要一个中间变量进行变量的临时保存。用传统方法编写变量交换代码如下: 在计算机刚发明时,内存非常“精贵”。这种变量交换往往是非常奢侈的。于是计算机“大牛”发明了一些算法来避免使用中间变量: 这样的算法很多,但是都有一定的数值范围和类型要求。 到了Go语言时,内存不再是紧缺资源,而且写法可以更简单。使用 Go 的“多重赋值”特性,可以轻松完成变

  • 本文向大家介绍Shell脚本定义变量和重新赋值,包括了Shell脚本定义变量和重新赋值的使用技巧和注意事项,需要的朋友参考一下 Shell支持自定义变量。 定义变量 定义变量时,变量名不加美元符号($),如: 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: •首个字符必须为字母(a-z,A-Z)。 •中间不能有空格,可以使用下划线(_)。

  • = 赋值操作符(它的左右两边不能有空白符) 不要搞混了 = 和 -eq,-eq 是比赋值操作更高级的测试。注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符。 例子 4-2. 简单的变量赋值 1 #!/bin/bash 2 # 裸变量 3 4 echo 5 6 # 什么时候变量是“裸”的?比如说,变量名前面没有$? 7 #当变量被赋值

  • 问题 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 解决方案 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。 唯一的前提就是变量的数量必须跟序列元素的数量是一样的。 代码示例: >>> p = (4, 5) >>> x, y = p >>> x 4 >>> y 5 >>> >>> data = [ 'ACME', 50,