包含方法
本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 76 课,共 86 课。
处理数组时,你通常需要先检查某个值是否存在,再执行操作。Swift 提供了 contains() 方法来实现这一目的。如果找到该元素,它会返回 true,否则返回 false。
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// 我们有香蕉了!这比手动编写循环来搜索数组整洁得多。这个方法适用于任何类型的数组,无论其中包含字符串、数字还是其他值:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // false一种常见的用法是根据允许的值列表验证用户输入:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// 有效的选项contains() 方法也适用于字符串,可用于检查较长的字符串中是否包含某个子字符串:
let message = "Hello, Swift!"
print(message.contains("Swift")) // true挑战
简单你会收到两行输入:
- 以逗号分隔的允许用户名列表(例如,
admin,user,guest,moderator) - 要检查的用户名
检查该用户名是否存在于允许列表中。如果存在,打印 Access granted。如果不存在,打印 Access denied。
步骤:
- 读取以逗号分隔的列表,并将其拆分为字符串数组
- 读取要检查的用户名
- 使用
contains()方法判断该用户名是否在允许列表中 - 根据结果打印相应的消息
提示:使用 components(separatedBy:) 将字符串拆分为数组。例如:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")亲手试试
// 读取以逗号分隔的允许使用的用户名列表
let allowedList = readLine()!
// 读取要检查的用户名
let username = readLine()!
// TODO:在下方编写代码
// 1. 使用 components(separatedBy:) 将 allowedList 拆分为数组
// 2. 使用 contains() 检查 username 是否在数组中
// 3. 根据结果输出 "Access granted" 或 "Access denied"这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Swift 在线编辑器