简单的Swift函数返回错误

时间:2014-10-29 13:12:01

标签: macos swift

我正在将一些算法伪代码转换为Swift并具有以下功能:

func max(a: [Int], b: Int) {

  var result = a[0]

  var i: Int

  for (i = 1; i <= b; i++) {
      if (a[i] > result) {
          result = a[i]
      }
  }
  return result
}

返回结果时出错:'Int'不能转换为'()'

我在网上搜索过,无法找到这个问题的答案,希望有人能指出我正确的方向。

由于

2 个答案:

答案 0 :(得分:2)

函数声明中缺少返回类型:

func max(inout a: [Int], b: Int) -> Int {
                                 ^^^^^^

如果没有返回类型,swift默认为空元组(),这就是错误的含义:int不能转换为空元组。

另请注意,您的return声明放错了位置:它应该在最后一个结束括号之前

    }
    return result
}

而不是

        return result
    }
}

答案 1 :(得分:0)

您必须像这样实现返回类型

 func max(inout a: [Int], b: Int)-> Int {

 var result = a[0]
 var i: Int

 for (i = 1; i <= b; i++) {
  if (a[i] > result) {
      result = a[i]
  }
 }
 return result
}