如何使用变量将字符串附加到数组中?迅速

时间:2017-07-13 04:40:40

标签: arrays swift string

我最近开始学习编码,我遇到了一个问题,即将已变成变量的字符串附加到数组中。 以下是控制台所说的内容:

无法将'[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]
}

3 个答案:

答案 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参数(...)。

这就是错误消息所说的内容。您传递的字符串数组需要单个字符串。

有两种解决方案:

  1. item参数更改为String

    func addItem(item: String) -> String{
    
  2. 使用API​​附加数组的内容:

    randomList.append(contentsOf: item)