PS C:> $manager = @{ Tom = 3 }
PS C:> $dev + $manager
Bad argument to operator '+': 已添加项。字典中的关键字:“Tom”所添加的关键字:“Tom”.
At line:1 char:7
+ $dev + <<<< $manager
在前面的例子中,都是相同类型的对象相加。您可能正在思考,如果在“+”两边不是相同类型的对象,结果到底会是什么呢?下面是一些常见的情况:
PS C:> 123 + '23' 146 PS C:> 123 + '0xa' 133 PS C:> 4 + 'test' Cannot convert value "test" to type "System.Int32". Error: "Input string was not in a correct format." At line:1 char:4 + 4 + <<<< 'test' PS C:> '02' + 73 0273
PowerShell在发现“+”运算符时,将会根据左操作数的类型来决定计算的规则。在第一个表达式中123 + '23'中,123是整数,因此“+”执行数值加法运算。但是由于右操作数是字符串类型,因此PowerShell首先对该操作数进行类型转换。所以最后,我们看到结果为数值类型的值:146。第二个例子中,字符串包含了一个整数的十六进制表示形式,PowerShell将该数值正确转换成数值类型并进行计算。第三个例子中,字符串'test'是无法转换为整数类型的,因此PowerShell给出错误信息:“输入串的格式不正确”。第四个例子中,左操作数变成了包含数字的字符串,因此PowerShell执行了字符串的连接操作。










