我最近开始学习编码,我遇到了一个问题,即将已变成变量的字符串附加到数组中。 以下是控制台所说的内容:
无法将'[String]'类型的值转换为预期的参数类型'String'
这是我的代码:
var randomList = [String]()
func getList(inputList:Array<String>) -> Array<String>{
randomList = inputList
return randomList
}
func addItem(item: String...) -> String{
randomList.append(item)
return "\(item) was added"
}
func getItem(x: Int) -> String{
return randomList[x]
}
答案 0 :(得分:3)
只需将您的代码更改为:
func addItem(item: String...) -> String{
randomList.append(contentsOf: item)
return "\(item) was added"
}
然后你就可以添加一个或多个这样的字符串:
addItem(item: "Hello", "you", "there")
结果数组如下所示:
print(randomList)
[&#34;你好&#34;,&#34;你&#34;,&#34;那里&#34;]
附加单个字符串:
let singleString = "hi"
addItem(item: singleString)
附加多个字符串:
let stringOne = "one"
let stringTwo = "two"
let stringThree = "three"
addItem(item: stringOne, stringTwo, stringThree)
答案 1 :(得分:1)
因为您追加的是字符串数组而不是单个字符串。 item
是一个字符串数组。
您可以删除...
以附加单个项目。
func addItem(item: String) -> String{
randomList.append(item)
return "\(item) was added"
}
或者如果你想追加使用randomList.append(contentsOf: item)
func addItem(item: String...) -> String{
randomList.append(contentsOf: item)
return "\(item) was added"
}
答案 2 :(得分:1)
您正在使用被视为数组的Variadic参数(...)。
这就是错误消息所说的内容。您传递的字符串数组需要单个字符串。
有两种解决方案:
将item
参数更改为String
:
func addItem(item: String) -> String{
使用API附加数组的内容:
randomList.append(contentsOf: item)