此代码将生成以下警告
module TimeSeries
open System
type TimedValue<'T> = { ts : DateTime; value: 'T}
type TimeSerie<'T> = TimedValue<'T> seq
let t : TimedValue<'double> = { ts = DateTime.Today; value=5}
警告:
这种构造导致代码不像类型注释所指示的那样通用。类型变量“double”已被限制为“int”类型。
我对 F# 很陌生,我认为 5 被解释为一个 int 并且不知何故 F# 告诉我我问了一个 double 但它将是一个 int。
当我尝试用这个替换5
时5.
告诉我它仍然受到浮点类型的限制。
我应该以某种方式将其转换为 double 还是仅删除声明部分: TimedValue<'double>
并让 F# 处理类型?