有人请帮助我理解为什么下面的代码会给我错误'阻止以后让未完成。期待一个表达'? x的值应该是一个字符串列表,这就是F#看到它的方式。那么为什么x不能成为字符串列表以供以后在函数中使用?
let fxProper (str : string) (values : obj[,]) =
let x =
values
|> Seq.cast<obj>
|> Seq.filter (fun x -> not (x :? ExcelEmpty))
|> Seq.map string
|> Seq.toList
答案 0 :(得分:4)
您需要对刚刚设置的x值执行某些操作
let fxProper (str : string) (values : obj[,]) =
let x =
values
|> Seq.cast<obj>
|> Seq.filter (fun x -> not (x :? ExcelEmpty))
|> Seq.map string
|> Seq.toList
x
应该有用。
这个
let fxProper (str : string) (values : obj[,]) =
values
|> Seq.cast<obj>
|> Seq.filter (fun x -> not (x :? ExcelEmpty))
|> Seq.map string
|> Seq.toList
应该也可以。
答案 1 :(得分:1)
你做得对。 x
的let绑定工作正常。该错误告诉您,您的函数fxProper
当前没有返回任何内容。如果你的意图是返回x,那么你需要在fxProper
的末尾添加它,如下所示,否则只需添加一个虚拟返回值,直到你完成函数编写。
let fxProper (str : string) (values : obj[,]) =
let x =
values
|> Seq.cast<obj>
|> Seq.filter (fun x -> not (x :? ExcelEmpty))
|> Seq.map string
|> Seq.toList
x //this returns the value of x from fxProper, this could also just the default value of whatever you actually want to return here