gpt4 book ai didi

ios - 字典不允许我将字符串附加到它的值

转载 作者:行者123 更新时间:2023-11-28 10:01:24 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,它接受一个名称数组,并将其排序在字典中,其中字母和名称作为键和值。但是现在字典不允许我将字符串附加到值。我的代码如下所示:

func listCounter(usernames: [String])->Dictionary <String,[String]> {
var dict=Dictionary<String,[String]>()
var letterList = [String]()

for user in usernames{

var index = user.substringToIndex(advance(user.startIndex,1))
index = index.lowercaseString as String

if find(letterList, index) != 0{
dict[index] += [user]

}else{
dict[index] = [user]

letterList += [index]
}
}
return dict
}

错误出现在我试图将新字符串添加到字典的那一行,它说:“无法使用类型为‘$T4,$T6’的参数列表调用‘+=’”这告诉我的类型有问题,但我不知道如何解决。

如有任何关于如何解决此问题的建议,我们将不胜感激。

最佳答案

发生这种情况是因为字典查找总是返回一个可选的 - 因为前面的 if 应该确保该元素存在,您可以安全地对其应用强制解包运算符:

dict[index]! += [user]

然而,在 Playground 上运行测试会导致运行时异常 - 我认为这种情况:

if find(letterList, index) != 0 {

不可靠。

我替换为对 key 存在的显式检查,它起作用了:

if dict[index] != nil {
dict[index]! += [user]

注意:我没有像这样使用可选绑定(bind):

if var element = dict[index] {
element += [user]

因为数组是值类型,按值复制。将数组赋值给一个变量实际上创建了它的一个副本,因此添加是在副本上完成的,而原始数组保持不变。

关于ios - 字典不允许我将字符串附加到它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28098433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com