我正在操场上尝试“警卫队”,但结果却出乎意料

时间:2018-09-30 21:19:45

标签: swift

我有代码(returning是一个函数)

该函数显然返回nil,但是else块未触发。

var returns: String?
func returning() -> String {
    return nil
}

func nilTest() {
    guard returning != nil else {
        return
    }
    print(returning)
    print("Success")
}

输出:

  

(功能)

     

成功

1 个答案:

答案 0 :(得分:2)

redis.zrange-function('channel', 0, -1)
[('item1', 123), ('item2', 333), etc.]

问题是代码中的var returns: String? func returning() -> String? { return nil } func nilTest() { /// Here you use function `returning` as a variable. /// Not its value guard returning != nil else { return } print(returning) print("Success") } 只是一个函数。不是该功能的结果。它具有函数类型returning。不是() -> String?

要解决此问题,请使用:

String?

相反。

或者,更明显的是:

guard returning() != nil else {
    return
}