Hace "-eq" en Powershell prueba igualdad de referencia (como "==" en C#) o hace el equivalente de llamar Object.Equals()Hace -eq palabra clave en power shell prueba igualdad de referencia o uso Object.Equals()
5
A
Respuesta
5
La prueba de la igualdad no es tan simple.
Considere que 'a' -eq 'A'
devuelve verdadero. Eso significa que PowerShell hace algo más que simplemente llamar a Equals.
Además de sus objetos Equals
se llama como se esperaba.
Add-Type -TypeDefinition @"
using System;
public class X {
public string Property;
public X(string s) {
Property = s;
}
public override bool Equals(object o) {
System.Console.WriteLine("equals on {0}", Property);
return Property == ((X)o).Property;
}
public override int GetHashCode() { return 20; }
}
"@
$o1 = New-Object X 'a'
$o2 = New-Object X 'A'
$o1 -eq $o2
Además de que PowerShell utiliza la conversión bastante pesada. Entonces, si los operandos no son del mismo tipo, el operando derecho se convierte al tipo del operando izquierdo. Es por eso que '1' -eq 1
tiene éxito.
3
El operador -eq no es ninguno (como "==" en C#) y Object.Equals(). Ejemplo simple: realiza una comparación de cadenas insensible a mayúsculas y minúsculas. De hecho, realiza muchas conversiones ocultas, y algunas de ellas, desafortunadamente, ni siquiera se esperan intuitivamente.
Aquí está algo interesante demo
# this is False
[ConsoleColor]::Black -eq $true
# this is True
$true -eq [ConsoleColor]::Black
Cuestiones relacionadas
- 1. sqlalchemy id igualdad vs igualdad de referencia
- 2. Power shell: Import-Module
- 3. USO palabra clave en Mysql
- 4. igualdad de referencia Scala
- 5. ¿ReadWriteLock hace innecesaria la palabra clave sincronizada?
- 6. Igualdad de referencia para java.lang.String en Scala
- 7. ¿La palabra clave `overload` hace alguna diferencia?
- 8. Uso práctico de la palabra clave `stackalloc`
- 9. C# ref uso de la palabra clave
- 10. as3: uso de esta palabra clave
- 11. Power Shell Web Scraping SSL/TSL Issue
- 12. ¿qué hace exactamente el prototipo de palabra clave en jquery?
- 13. El uso de esta palabra clave Java
- 14. el uso de la palabra clave privada
- 15. instancia del uso de la palabra clave
- 16. Prueba de delegados para igualdad
- 17. Palabra clave exclusiva o en rubí?
- 18. ¿Qué prueba de igualdad utiliza Ruby's Hash al comparar claves?
- 19. ¿Qué hace la palabra clave 'in' en F #?
- 20. ¿Qué hace la palabra clave Call en VB6?
- 21. ¿Qué hace realmente la palabra clave Set en VBA?
- 22. Uso de la palabra clave "global" en Python
- 23. Uso de la palabra clave "this" en java
- 24. ¿Cómo uso programáticamente la palabra clave "usar" en C#?
- 25. Prueba de script Shell
- 26. Java Envoltura prueba de igualdad
- 27. Prueba de igualdad de matrices en C#
- 28. Prueba de igualdad de variables en twig
- 29. El uso de IsAssignableFrom y "es" palabra clave en C#
- 30. Ilustrando el uso de la palabra clave volátil en C#