Swift Playgrounds Apple 人人能编程应用程序练习

标签 swift

我正在尝试找出为什么这个特定的代码无法在 Playground 中通过,我正在学习 Apple 提供的“Everyone Can Code App Development with Swift”类(class)。挑战如下:

既然用户可以登录,他们需要能够搜索用户列表以找到他们的 friend 。这通常可以通过让用户输入名称,然后循环遍历所有用户名以查看用户名是否包含输入的搜索词来完成。稍后您将了解循环,因此现在您只需完成一个循环。假设您正在搜索一位用户名为 StepChallenger 的 friend 。您在搜索栏中输入“step”,应用程序开始搜索。当应用程序访问用户名“stepchallenger”时,它会检查“StepChallenger”是否包含“step”。

使用下面的 userName 和 searchName,编写一个 if-else 语句来检查 userName 是否包含搜索词。搜索不应区分大小写。

这是我的代码:

import Foundation
let userName = "StepChallenger"
let searchName = "step"

if userName.contains("step") && userName.lowercased() == searchName  {
print("We have found the user")

}

任何帮助将不胜感激,如果我做得不正确,我深表歉意。提前致谢。

最佳答案

它没有打印任何内容,因为 if 的结果是 false。让我们检查一下原因

  • 您的第一个条件userName.contains("step")

您的userName是“StepChallenger”,您正在检查它是否包含“step”。 不会,因为您没有进行不区分大小写的检查。因此,第一个条件已经返回 false,使得整个 if 条件的计算结果为 false,因为您使用的是 &&

  • 您的第二个条件userName.lowercased()是“stepchallenger”,您正在检查它是否等于“step”。不,它不是同一个字符串,所以它再次返回 false

所以最终 print 语句永远不会被执行。要检查 userName 是否包含 searchName ,您需要做的是将所有内容转换为相同的大小写并使用 contains 方法。

if userName.lowercased().contains(searchName.lowercased()) {
    print("User found!")
}

或者有一个 caseInsensitiveCompare(_:)检查方法你可以检查一下。

关于Swift Playgrounds Apple 人人能编程应用程序练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862433/

相关文章:

ios - 用swift将图像划分为图像数组

arrays - 在 Parse 中从指针数组中检索对象,然后在 Swift 中更新 uitableview 的更有效方法

ios - 在 SwiftUI 中暂停通知发布者

swift - 动态改变 SwiftUI 的 VStack 的顺序

Swift 将日期秒舍入为零

ios - 当我按下按钮推送到另一个 ViewController 时,我怎么知道我的按钮在哪个 indexPath.row 中?

ios - 未执行 Segue

loops - Swift - 尝试从文本字段循环遍历 stringValue

ios - tableviewController 内重新加载数据失败

swift - 如何将变量值传递到 URLSession 异步之外 - swift 3