Function Swift函数返回不可用的可选

Function Swift函数返回不可用的可选,function,swift,optional,any,Function,Swift,Optional,Any,我有下面的函数返回Any?,在这里,我简化了代码以明确问题 func myFoo(index:CInt, type:CInt, stmt:COpaquePointer) -> Any? { return nil } 在下面的示例代码中,该值应为nil,在执行if语句时,该值不会发生在代码块中 let value : Any? = self.myFoo(index, type: type, stmt: stmt) if value { // below is entered!! }

我有下面的函数返回
Any?
,在这里,我简化了代码以明确问题

func myFoo(index:CInt, type:CInt, stmt:COpaquePointer) -> Any? { return nil }
在下面的示例代码中,该值应为
nil
,在执行if语句时,该值不会发生在代码块中

let value : Any? = self.myFoo(index, type: type, stmt: stmt)

if value
{
   // below is entered!!
}
调试器将这些值显示为

价值协议?有些很快


你的问题是什么?您的代码运行良好,它返回
nil
。调试器显示正确的
nil
值。。。你到底被卡在哪里?如果条件不起作用,则输入if块,即:如果条件为true,而值为nil,则你所说的永远不会发生。如果
nil
则if语句将永远不会运行到true分支中。你可能需要更准确地回答你的问题。这正是正在发生的事情。试试看。如果将函数返回类型更改为除任何以外的任何类型?如果条件正常工作,则只有当函数返回Any时才会出现问题?这以更简单的方式显示了问题。我删除了该函数并直接尝试了它,问题出现了:let value:Any?=如果值{//这段代码不能输入,则为nil!好吧,是!!}