Swift3 为什么';你不能执行吗?

Swift3 为什么';你不能执行吗?,swift3,Swift3,我有以下资料: guard let _ = myfunction() else { print("guard just executed") return false } myfunction返回false,但未执行保护中的代码。这不是守卫应该执行的正确场景吗 该功能定义为: func myfunction() -> Bool? 但是只返回true或false(不是可选值)。guard let用于包装可选值,以便在您的情况下,guard let=myfunction()否则{始

我有以下资料:

guard let _ = myfunction() else {
  print("guard just executed")
  return false
}
myfunction
返回false,但未执行保护中的代码。这不是守卫应该执行的正确场景吗

该功能定义为:

func myfunction() -> Bool?

但是只返回true或false(不是可选值)。

guard let
用于包装可选值,以便在您的情况下,
guard let=myfunction()否则{
始终返回true,如果您还想检查(比较)它的值您需要用
guard
语句再添加一个条件,语句之间用
分隔,
如下所示

guard let flag = myfunction(), flag else {
    print("guard just executed")
    return false
}

guard let
用于包装可选值,以便在您的情况下,
guard let=myfunction()否则{
始终返回true,如果您还想检查(比较)其值,则需要使用
guard
语句以
分隔,再添加一个条件

guard let flag = myfunction(), flag else {
    print("guard just executed")
    return false
}
如果
myfunction()的结果
不是零,无论它是否返回
Int?
String?
Bool?
等。如果结果不是零,则展开的
Bool?
值是否为
都无关紧要,同样地,
Int?
的展开值是否为5,37也无关紧要或2089

仅当
myfunction
的结果为零时,让{=myfunction()else{}
进入保护状态。

如果
myfunction()的结果为
不是零,无论它是否返回
Int?
String?
Bool?
等。如果结果不是零,则展开的
Bool?
值是否为
都无关紧要,同样地,
Int?
的展开值是否为5,37也无关紧要或2089


guard let{=myfunction()else{}
仅当
myfunction
的结果为nil时才进入保护条件。

guard let
需要一个可选参数,如果只需要检查布尔结果,则有一个更简单的语法

guard myfunction() else { ...

guard let
需要一个可选参数,如果只需要检查布尔结果,则有一个更简单的语法

guard myfunction() else { ...

如果我返回的是非可选布尔值,那么就不需要guard了?@4thSpace是的,正是mate:)@LeoDabus感谢
guard case let
的建议。@LeoDabus:谢谢,但如果只有一个条件,我想
guard case let
与简单的
If
条件没有任何优势?@LeoDabus:很酷。谢谢你的澄清。如果我正在返回非可选布尔值,guard不是真的需要吗?@4thSpace是的,完全正确,mate:)@LeoDabus感谢
guard case let
的建议。@LeoDabus:谢谢,但如果只有一个条件,我想
guard case let
与简单的
if
条件相比没有任何优势?@LeoDabus:酷。谢谢你的澄清。