我一直遇到以下问题:
(System.Console.ReadLine ()).Split [|'('; ')'|]
|> Array.filter (fun s -> not (System.String.IsNullOrEmpty (s)))
|> Array.map (fun s -> s.Split [|','|])
|> Array.map (fun s -> Array.map (fun t -> t.Trim ()) s) (* t.Trim () is underlined with a red squiggly line *)
|> [MORE CODE]
与红色波浪线相关的错误是:
Lookup on object of indeterminate type based on information prior to this program point. A type annotation may be needed prior to this program point to constrain the type of the object. This may allow the lookup to be resolved.
但是当鼠标指针悬停在 上时t
,IntelliSense 正确地说t
是type string
。
我可以通过编写来绕过错误fun (t : string) -> [CODE]
,但我想知道为什么 Visual Studio 在已经正确检测到变量的类型时会绘制波浪线。这是试用版中的一个简单错误,还是我误解了 F# 的类型推断?
提前感谢您的回复。