有人可以向我解释为什么这些比较会按照他们的方式进行。我的一个脚本中有一个错误让我花了一些时间来完成。我正在使用read-host并输入一个数字。它将它存储为字符串。
Write-Host "(`'2`' -gt 9 ) = " ('2' -gt 9 )
Write-Host "(2 -gt 9 ) = " (2 -gt 9 )
Write-Host "(`'2`' -gt 10 ) = " ('2' -gt 10 )
如果要将字符串与Int进行比较,它是否使用Ascii值?如果是这样,为什么第一个显示$ false,它应该是$ true。
那么当你将int更改为10时它是如何变为$ true。
答案 0 :(得分:0)
在比较时,将右值转换为左值的类型。因此,'2' -gt 9
变为'2' -gt '9'
,即为假,'2' -gt 10
变为'2' -gt '10'
,即为真。