在Python中,我可以通过键入以下内容查看变量的类型:
>>> i = 123
>>> type(i)
<type 'int'>
在F#中有没有办法做到这一点?
答案 0 :(得分:7)
如果要在F#Interactive中执行此操作,则只需要通过键入变量名称来评估变量(紧随其后的是;;
和F#Interactive提示符下的任何其他表达式)。也就是说,如果您已经执行了let num = 123
,则只需在F#Interactive提示符下键入num;;
,就会看到以下内容:
val it : int = 123
val
一词表示F#Interactive正在描述一个值。名称it
是F#Interactive中的特殊名称,分配给最后求值的值。然后是冒号,值的类型(在这种情况下为int
),等号,然后打印出值。
因此,要查看F#Interactive中变量的值和类型,您要做的就是只键入该变量,然后键入;;
。很简单。
答案 1 :(得分:6)
F#是.NET语言,在.NET中,所有类型都是System.Object
的后代,它具有GetType
方法:
let i = 123
let t = i.GetType()
话虽如此,我必须强烈敦促您不要依赖运行时类型信息,除调试或类似目的外。这样做会使您的程序难以维护,并且从长远来看会再次吸引您。
在Python中,您可以避免这种情况,因为Python始终是动态键入的,因此推迟到运行时再执行一次检查并没有真正的区别。但是F#是静态类型的,通过将类型推迟到运行时,就可以放弃编译器可以提供的任何支持。