【发布时间】:2018-08-15 16:50:22
【问题描述】:
我在 F# 中有以下代码:
let value = NSUserDefaults.StandardUserDefaults.StringForKey("type")
if value <> null then
//we know type is not null
这里我没有指定value 的类型。但是,由于 F# 是一种静态类型语言,编译器必须在编译期间为每个构造推导出一个确切的类型。在这种特殊情况下,值是null 或String。编译器如何处理这个问题?运行时分配给 value 的类型是什么?
【问题讨论】:
-
.net 中没有
null类型,它包含所有引用类型,包括string。所以value的类型是string。