我有代码(returning
是一个函数)
该函数显然返回nil,但是else块未触发。
var returns: String?
func returning() -> String {
return nil
}
func nilTest() {
guard returning != nil else {
return
}
print(returning)
print("Success")
}
输出:
(功能)
成功
答案 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
}