我想创建一个带字符串并返回一系列数字的函数。如果它传递一个空字符串,它应该返回一个只包含0的序列。我尝试了以下操作:
let mapToInt (s: string) :seq<int> =
if s.Length = 0 then
seq {0}
else
s.Split ' '
|> Seq.map int
然而,这会出现以下错误消息:
This expression should have type 'unit', but has type 'int'. Use 'ignore' to discard the result of the expression, or 'let' to bind the result to a name.
我的代码出了什么问题?
答案 0 :(得分:2)
您的序列表达式需要使用yield
来产生一个值:
if s.Length = 0 then
seq { yield 0 }