为什么<';(国际)——>;Int';不可转换为';Int'&燃气轮机;错误由xcode返回,但不在操场中?

为什么<';(国际)——>;Int';不可转换为';Int'&燃气轮机;错误由xcode返回,但不在操场中?,xcode,swift,Xcode,Swift,此Swift功能: func myfakefunc(myfakeParameter: Int) ->Int { return myfakeParameter } var itWorks: Int = myfakefunc(1) println(itWorks) 不会在xCode项目中生成,因为'(Int)->Int'不能转换为'Int'(第5行错误) 游乐场中的相同代码不返回错误 为什么?您之所以会出现此错误,是因为您正在全局声明itWorks,并为其赋值,以便执行如下操作: im

此Swift
功能

func myfakefunc(myfakeParameter: Int) ->Int {
  return myfakeParameter
}

var itWorks: Int = myfakefunc(1)
println(itWorks)
不会在xCode项目中生成,因为
'(Int)->Int'不能转换为'Int'
(第5行错误)

游乐场中的相同代码不返回错误


为什么?

您之所以会出现此错误,是因为您正在全局声明
itWorks
,并为其赋值,以便执行如下操作:

import UIKit

class ViewController: UIViewController {

var itWorks : Int = Int()
override func viewDidLoad() {
    super.viewDidLoad()
    itWorks = myfakefunc(1)
    println(itWorks)
}

func myfakefunc(myfakeParameter: Int) ->Int {
    return myfakeParameter
   }
}

我还因为没有将我的函数声明为静态函数而犯了这个错误。编译器并不是很有帮助

扩展整数
{
静态func randomIntWithMax(最大值:UInt32)->Int{
返回整数(arc4random_uniform(max))
}
}

谢谢你的回答,这非常有用。你会用另一种方式吗?(与我的不同,当你说“如果你想这样做……”时,我可以反驳这一点。)很高兴帮助你:)另一个解释操场为什么不好的极好例子。一个真正的Swift文件有非常严格的规则,关于什么可以出现在哪里,而操场不遵守这些规则。在操场上做准备就是为失败做准备。