swift - Swift Playgrounds Apple 每个人都可以编写应用程序练习
问题描述
我试图弄清楚为什么这个特定的代码不会在操场上通过,我正在完成 Apple 的“每个人都可以使用 Swift 编写应用程序开发”课程。这是挑战:
现在用户可以登录,他们需要能够搜索用户列表来找到他们的朋友。这通常可以通过让用户输入名称来完成,然后遍历所有用户名称以查看用户名称是否包含输入的搜索词。稍后您将了解循环,因此现在您只需完成其中的一个循环。假设您正在搜索用户名为 StepChallenger 的朋友。您在搜索栏中输入“步骤”,应用程序开始搜索。当应用程序找到用户名“stepchallenger”时,它会检查“StepChallenge”是否包含“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
is的结果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(_:)检查方法。