首页 > 解决方案 > 如何确定 F# 中的类型?

问题描述

在 Python 中,我可以通过键入以下内容来查看变量的类型:

>>> i = 123
>>> type(i)
<type 'int'>

有没有办法在 F# 中做到这一点?

标签: f#

解决方案


F# 是一种 .NET 语言,在 .NET 中,所有类型都是 .NET 的后代System.Object,它有一个GetType方法:

let i = 123
let t = i.GetType()

话虽如此,我必须强烈敦促您不要依赖运行时类型信息,除非用于调试或类似目的。这样做会降低你的程序的可维护性,并且从长远来看会反过来咬你。

在 Python 中,您可以摆脱这一点,因为 Python 无论如何都是动态类型的,因此延迟到运行时的再检查并没有真正的区别。但是 F# 是静态类型的,通过将类型推迟到运行时,您会丢弃编译器可以提供的任何支持。


推荐阅读