无法转换数组中的返回表达式

时间:2016-04-13 03:19:26

标签: arrays swift types

我有一个像这样声明的数组:

var myArray = [Int]()

我也有一个功能:

func myFunc(num:Int) -> [Int] {
    return myArray.append(num)
}

我一直收到错误:“无法将类型'()'的返回表达式转换为返回类型'[Int]'”

有人可以向我解释发生了什么事吗?谢谢!

3 个答案:

答案 0 :(得分:1)

方法myArray.append(num)不会返回[Int]类型的对象(它是无效的,这意味着它不会返回任何内容),因此您必须编写如下代码:

func myFunc(num:Int) -> [Int] {
    myArray.append(num)
    return myArray
}

答案 1 :(得分:1)

Swift reference声明Date函数如下:

append

请注意,缺少返回类型,即声明中没有mutating func append(_ newElement: Element) 部分。这意味着->不能在表达式中使用。

你需要做的是在一行上追加并在另一行上返回。

答案 2 :(得分:0)

我认为发生的事情是您尝试返回Array.append()的返回值,该值为null。相反,只需:

myArray.append(num)
return myArray