Почему выражение "1" -eq 1
становится ИСТИННЫМ в powershell? Первый имеет строковый тип, а второй — целочисленный, почему он рассматривает их как равные.
не спамить тегами. Теги для конкретной версии предназначены только для проблем, возникающих в этой конкретной версии.
@phuclv извините, я здесь новенький, буду помнить об этом.
@AbrahamZinala спасибо, сэр, за ответ на вопрос, который мне очень помог.
Это называется неявным преобразованием типов.
Powershell автоматически выполняет преобразование типов, когда значение одного типа используется в контексте, требующем другого типа.
A type conversion is performed when a value of one type is used in a context that requires a different type. If such a conversion happens automatically it is known as implicit conversion. (A common example of this is with some operators that need to convert one or more of the values designated by their operands.) Implicit conversion is permitted provided the sense of the source value is preserved, such as no loss of precision of a number when it is converted.
В дополнение к официальной документации, вот отличный ответ mklement0 здесь с некоторыми дополнительными примерами и ссылками: Неявные преобразования типов PowerShell — это происходит? Это безопасно?
Большое спасибо, сэр, ваш ответ был полезен
PowerShell пытается быть полезным, преобразовывая левый операнд в правый тип операнда перед выполнением любого выражения.