首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于PowerShell的-eq多维集合逻辑

问用于PowerShell的-eq多维集合逻辑
EN

Stack Overflow用户
提问于 2013-05-03 21:26:12
回答 1查看 214关注 0票数 3

感谢PowerShell Logic,当左操作数是集合(而不是布尔值)时,我熟悉一些复杂的-eq工作原理,-eq将返回一个与右操作数相等的元素数组。在3.0规范中:

如果左操作数指定的值不是集合,则结果具有bool类型。否则,结果可能是一个空的、无约束的一维数组,该数组包含与右操作数指定的值相比测试True的集合的元素。

尽管如此,我发现了一个对我来说不太合理的案子。如果我使用一个也是一个数组的元素声明一个数组,那么我实际上无法让-eq与该元素匹配:

代码语言:javascript
复制
$a = @( 1, @(2, 3) )
$a -eq 1              # results in an array with a single element, containing 1
$a -eq @( 2, 3 )      # results in an empty array

到底怎么回事?要判断这是PowerShell包装混合类型数组元素、包装二维数组、值与引用类型相等检查的问题,还是其中的任何子集并不容易。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 00:54:25

我认为,与此相关的是,.NET中的数组比较只比较两个对象引用同一个对象,而不是它们具有等效的值。考虑:

代码语言:javascript
复制
# ~> @(2,3).Equals(@(2,3))
False

# ~> $arr = @(2,3)

# ~> $arr.Equals($arr)
True

# ~> $arr.Equals(@(2,3))
False

# ~> @(1, $arr) -eq $arr
2
3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16367782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档