Menu
CoddyTech

包含方法

本课属于 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
challenge icon

挑战

简单

你会收到两行输入:

  1. 以逗号分隔的允许用户名列表(例如,admin,user,guest,moderator)
  2. 要检查的用户名

检查该用户名是否存在于允许列表中。如果存在,打印 Access granted。如果不存在,打印 Access denied。

步骤:

  1. 读取以逗号分隔的列表,并将其拆分为字符串数组
  2. 读取要检查的用户名
  3. 使用 contains() 方法判断该用户名是否在允许列表中
  4. 根据结果打印相应的消息

提示:使用 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"
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器