He estado buscando en Google por un tiempo ahora ... Ok, lo siento, este es patéticamente fácil, pero ¿hay un operador en F # para comparar tipos de clase, como la palabra clave 'es' Cª#? No quiero usar una declaración de partido completa o comenzar a lanzar cosas. SaludosPrueba de tipo simple en F #
17
A
Respuesta
25
Usted puede utilizar el constructo :?
tanto como un patrón (en el interior match
) o como un operador:
let foo = bar :? System.Random
Esto comporta de forma ligeramente diferente que en C#, ya que el compilador sigue tratando de hacer algunas comprobaciones en tiempo de compilación -hora. Por ejemplo, es un error usar esto si el resultado sería sin duda false
:
let bar = 42
let foo = bar :? System.Random // Error
No creo que esto podría dar lugar a confusión, pero siempre se puede añadir box
para convertir el argumento a obj
, que pueden ser probados en contra de cualquier tipo:
let foo = box bar :? System.Random
6
Si quieres un general C# -to-F # de referencia rápida, ver
que responde esta pregunta y muchas otras.
Cuestiones relacionadas
- 1. Bash simple - para f * en
- 2. simple PHP isset prueba
- 3. Desarrollo web simple de .NET con F #
- 4. Haskell a F # - declare un tipo recursivo en f #
- 5. F # opción de tipo en C#
- 6. Comprender los constructores tipo F #
- 7. F # Tipo Anotación para las listas
- 8. Convirtiendo OCaml a F #: ¿Hay una manera simple de simular OCaml top-level #trace en F #
- 9. Prueba simple de la unidad haskell
- 10. F # Tipo de declaración posible ala Haskell?
- 11. Proveedores de tipo F # y apis REST
- 12. Diferencia entre "archivo de prueba" y "archivo de prueba -f archivo"
- 13. F # Restricciones del tipo de miembro estático
- 14. F #: ¿Cita con definición de tipo?
- 15. segue no funciona en la prueba de segue simple
- 16. F #: parámetros de tipo explícitas en la unión
- 17. Referencing asíncrono F # tipo de datos en C#
- 18. ¿Cómo se define el tipo de dinero en F #
- 19. ¿Cómo funciona el tipo de opción en F #
- 20. ¿Qué sucede cuando los proveedores de tipo cambian en F #?
- 21. ¿Por qué son paréntesis significativos en F # declaraciones de tipo
- 22. Cómo obtener el tipo de módulo en F #
- 23. ¿Qué función matemática simple f (x) tiene estas propiedades?
- 24. una generalización simple de la clase de tipo Applicative (Functor); coincidencia de patrones en constructores
- 25. Prueba de rieles para tipo hash
- 26. Seq seq tipo como un parámetro miembro en F #
- 27. F # Tipo de proveedores y procesamiento de datos
- 28. F de error # compilación: aplicación de un tipo inesperado
- 29. ¿Puedo proporcionar un tipo como entrada a un proveedor de tipo en F #?
- 30. ¿Cómo hacer un molde de tipo simple en Scala?
Creo que lo ha hecho ... Si juego con él en la ventana interactiva, sigue dando errores de "Tipo de falta de coincidencia de consistencia" si no son del mismo tipo que me sacaron un poco del olor ... parece funcionar bien en el editor actual. –
@Ciemnl: agregué cierta información sobre la posible fuente de advertencias confusas. Sin embargo, no estoy seguro de cómo se puede obtener el "desajuste de restricción de tipo". –
sí, esa era la razón por la que ... el compilador estaba siendo demasiado inteligente con mi prueba rápida para ver si funcionaba. ¡Subestimé F #! Estoy realmente impresionado con el lenguaje que lo pienso ... –