【发布时间】:2013-10-05 07:49:57
【问题描述】:
我有这个功能:
let myFunction list (var1, var2) : bool =
for (x,y) in list do
match (var1, var2) with
| (1, 11) | (2, 22) -> true
| (_, _) ->
if not (x = y) then
true // error is here
false
这会返回一个错误,指出函数期望返回的值具有 bool 类型,而不是 unit。我想要实现的是在x != y 时返回true,因此循环应该停在那里;否则最后返回 false。
【问题讨论】:
-
错误信息到底是什么?我认为问题在于没有 else 的简单 if 表达式不能返回任何值(单位除外)。原因是函数需要一些返回值,如果没有其他部分,则不能保证。
标签: f#