问题标签 [guard-statement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
381 浏览

swift - Swift 2.0 Guard 语句失败结构初始化器

有一个类似名称的主题,但该示例是由于用户错误而导致的错误。我相信这个例子是一个实际的 XCode 问题。

我正在关注一个树屋教程,本着 swift 2.0 的精神,我在初始化程序中使用了保护语句而不是 if let。除了使用保护语句外,我的代码与指令相同。它有一个错误说“从初始化程序返回而不初始化所有存储的属性”。一旦我将其更改为 if let 语句,它就起作用了。也许我在某个地方犯了一个错误,但我盯着它至少看了一个小时,没有任何属性未初始化。

我在 else 子句中使属性等于 nil 以防万一,但这并没有影响任何事情。

结构每日天气{

0 投票
3 回答
93 浏览

function - 象限给定函数的错误

在输入 x 和 y 坐标时,我尝试创建一个函数来给出象限名称。但是,我收到错误消息:“输入 '=' 上的解析错误</p>

失败,已加载模块:无。”

我尝试添加一个“|otherwise..”,但这仍然不起作用。我确保我涵盖了 x 和 y 的所有可能性。

0 投票
1 回答
200 浏览

swift2 - 如何在 Swift 中防止无效的 instantiateViewControllerWithIdentifier

在 Swift 中,如何防止调用storyboard.instantiateViewControllerWithIdentifier无效的标识符?

我在 SO 上看到的大多数解决方案都在 Objective-C 中使用 try...catch,但该解决方案在 Swift 中不起作用,因为instantiateViewControllerWithIdentifier它不会抛出。

0 投票
1 回答
2652 浏览

swift2 - Swift 守卫语句用法

根据我对guardswift 语句的理解,我正在执行以下操作:

我只是想了解我们可以在guard语句中创建一个变量并在函数的其余部分中访问它吗?还是保护语句旨在立即返回或抛出异常?

还是我完全误解了guard语句的用法?

0 投票
4 回答
2689 浏览

swift - 如何在swift中使用守卫而不是if

如何在 swift 中使用 'guard'。我已经阅读了很多关于 'guard' 的文章。但我对此没有清楚的想法。请给我明确的想法。请给我以下 'if' 语句的示例输出。

0 投票
1 回答
950 浏览

string - 从守卫haskell中的do语句返回一个值

我正在尝试查找字符串列表中的任何字符串中是否已使用某些字母。如果是 - 选择下一个字母进行比较。如果否 - 返回这封信并更新初始列表。

要签入我正在使用的列表:

但这给了我一个错误:

无法将类型 '[Char]' 与 'Char' 匹配
预期类型:[String] -> [Char] -> Char
实际类型:[String] -> [Char] -> [Char]
在 ' stmt 中做'块:更新sc

我的更新函数有以下声明:

有没有正确的方法在警卫中执行 2 个动作otherwise?我需要返回c以便在另一个递归函数中使用它,该函数将Char c和 updated [String] s作为参数

当我让这个函数只返回c而不更新列表时,没有错误:

欢迎任何提示。

更新:我的下一个功能是:

对于更新,我尝试过:

问题是,稍后,我需要使用[String]which 是更新的结果,以及Char c(检查结果)到另一个函数中。这就是为什么在执行检查后,我需要返回一个值,并用它更新一个列表。

0 投票
2 回答
423 浏览

swift - 滥用guard语句代替nil检查

guard我正在做一些非常简单的事情,只是为了习惯 Swift(来自 objc)——我想通过使用语句和语句在链表中返回所需的节点switch。我显然在滥用该guard语句,因为我的else子句很大(这是我的 switch 语句被保存的地方)。也许我什至不需要switch声明,但它只是清理了一点。

我的旧代码如下:

替换为一条guard语句(但得到一个编译器错误,保护主体可能不会通过) - 我的问题是返回什么,因为我的函数返回类型是<T>(任何类型)。

我想print在我的语句之外添加一个语句guard,说明所需的索引超出了范围,但我还需要在 type 函数的末尾返回一些东西T。问题是在我的guard和 switch 语句之外,我没有什么可以返回的。

0 投票
1 回答
842 浏览

swift - 警卫声明不一致

// 在 guard 语句中执行 let first 后跟 bool check 会导致编译错误

// 先做布尔检查,然后让工作

上面的两个陈述似乎对我来说是等价的。为什么它在第一种情况下不起作用?

0 投票
1 回答
294 浏览

swift2 - Swift 2 可选的字符串防护

我正在处理 swift 2.0 中的一个问题

我从 API 获得了一个 json 文件,我试图从中解开一些字符串。

有时这个 json 会给我一个带有场地街道名称的字符串,但有时不会。所以当我尝试这个时

它总是让我的应用程序崩溃,说它是零。当我评论它时,我的应用程序运行完美,但它没有显示街道。知道如何在没有任何问题的情况下解开字符串nil吗?

如果尝试此代码

但它也失败了。

0 投票
2 回答
2398 浏览

swift - 守卫错误:条件绑定的初始化程序必须具有可选类型而不是“字符串”

使用 guard let 时出现致命错误。这是错误:

条件绑定的初始化程序必须具有可选类型而不是“字符串”

在我使用过的代码下方: