gpt4 book ai didi

powershell - 没有隐式类型转换的身份运算符/比较

转载 作者:行者123 更新时间:2023-12-04 18:02:02 26 4
gpt4 key购买 nike

使用 PowerShell 时,我们偶尔会比较不同类型的对象。一个常见的场景是 $int -eq $bool (即其中 0 -eq $false0 -ne $true 和任何非零值仅等于真,但不等于假)。

大多数情况下,这是一件好事;有时这很痛苦(例如,如果我正在寻找具有值 1 的对象上的所有属性,但我不想要所有具有值 $true 的属性)。

问题

是否有一个运算符无需转换即可执行此比较;即哪个本质上与 JavaScript 的身份运算符( === )相同;?

奖金问题

如果有这样的运营商,是否有任何容忍度?即虽然我不想治疗 1true由于相同,如果我可以治疗 [int]1(有时)会有所帮助和 [long]1好像他们是。

最佳答案

PowerShell 不直接提供此类运算符,但您可以使用标准的 .NET 方法 [Object]::Equals 做这样的比较。

笔记:
它允许类型通过覆盖虚拟 Object.Equals 来实现它们自己的相等比较。方法,因此可能会有一些奇怪的行为,如果某些自定义类型不正确地实现它。但是所有标准的 .NET 类型都应该没问题,并且认为它们自己只等同于相同类型的实例。

关于powershell - 没有隐式类型转换的身份运算符/比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com