Skip to main content
 首页 » 编程设计

类似于 Powershell 的运算符不可交换

2025年12月25日37unruledboy

考虑以下几点:

$var = 'Now is the time' 
if ($var -like 'Now*') { 'true' } else { 'false' } 

输出:

现在交换 -like 运算符的两个操作数:

if ('Now*' -like $var) { 'true' } else { 'false' } 

输出:

-like 运算符不是 commutative .这符合预期吗?

我在 Win 7 上,使用的是 PS 版本 2。谢谢。

请您参考如下方法:

-Like 行为不可交换 - 这是预期的。

几点:

  1. 评论中对上述讨论的总结:交换性会引入歧义:'Hello.*' - like 'Hello?' - 这会返回 true 还是 false-like 可交换的吗?因此通配符只允许出现在右侧。如果它们出现在左侧尺寸上,则它们被视为文字 - 而不是通配符。

如果其他人有其他有效观点:请随时编辑或给出更好的答案。