gpt4 book ai didi

swift - 使用 guard 关键字

转载 作者:搜寻专家 更新时间:2023-11-01 06:38:32 25 4
gpt4 key购买 nike

我遇到过很多编码员使用 guard 关键字的情况。然后,在看似几乎相同的情况下,同一代码中的同一编码器不使用 guard 关键字。我知道这可能是一个愚蠢的问题,所以请不要抨击它。什么时候应该使用 guard 关键字,什么时候不应该?

这是一个例子(还有更多)。这是从 API 请求数据的脚本的一部分。

    //Here I am using guard
guard let json = json else {

//Now I am not using guard
if let error = error {
completion(.Failure(error))
} else {
//Error handling
}
return
}

为什么不使用:

if let var1 = var1 {
//Keep on going
} else {
//Don't crash
}

一直使用语法而不是保护语法?乍一看,它甚至似乎具有更多功能,但我确信情况并非如此。

最佳答案

guard 语句的一大好处是您知道如果不满足条件则执行流程将停止。

这很重要有几个原因

展开

您可以定义不需要新范围 { ... } 可用的展开值

func next(num:Int?) -> Int? {
guard let num = num else { return nil }
return num + 1
}

可读性

当您阅读代码时,您知道如果不满足 guard 条件,则不会执行以下行。

语义

您知道 guard 语句用于检查以下代码块所需的条件。

但我可以用 if

替换每个 guard

当然。在某些语言中,我们还可以将每个 whilefor 替换为 goto。我们总是可以用迭代代替递归(反之亦然)。但这并不一定意味着它总是一个好主意。

尽管我们可以使用不止一种编程“工具”来实现某些行为,但我们仍应使用更适合特定场景的工具。

关于swift - 使用 guard 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38492626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com