在Swift中,是否可以使用索引检索/删除字典中的元素,而不是键值?在这个例子中,我试图创建一个“待办事项”列表,我最终可以访问分配给个人的所有任务。但我还想通过索引删除一个元素(任务)。
在下面的代码中,如何通过索引不使用键值删除第二个任务“洗碗”。我希望用这样的函数来调用这个函数:taskMgr.removeTaskByIndex(1)
任何其他解释或建议都很有帮助,因为我只是在学习Swift。
import Foundation
class TaskManager{
var taskDictArray = Dictionary<String, String>()
init(){
taskDictArray = [:]
}
func addTask(task: String, person: String){
taskDictArray[task] = person
}
}
var taskMgr = TaskManager()
taskMgr.addTask("take out trash", person: "emma")
taskMgr.addTask("wash dishes", person: "jack")
taskMgr.addTask("clean floor", person: "cleo")
//taskMgr.removeTaskByIndex(1)
//var a = taskMgr.getTaskByIndex(1)
答案 0 :(得分:2)
字典不维护其对象顺序,获取值的唯一方法是使用其键。您可能希望将具有索引的任何任务列表与其对应的键相关联,并使用该操作来操作字典。这是唯一的方法。如果不可能,您可能会考虑重构应用程序逻辑。
您需要添加
等功能func removeTask(task: String) {
taskDictArray[task] = nil
}
因此找到一种方法来获取与之关联的实际任务字符串。