Swift Playground提供了以下代码。代码的返回使得触摸时放置的图像间隔开。如果未指定返回值并且return关键字未跟随任何内容,该函数如何工作?没有指定任何内容时是否有默认的返回值和类型?此外,当我在Swift(Mac上的实际编程语言)中尝试此代码时,Touch类型不存在。我是否需要为Swift Playground的代码导入特定的库才能在Swift中工作?
func addImage(touch: Touch) {
if touch.previousPlaceDistance < 50 {
return
}
let graphic = Graphic(image: ⭐️)
scene.place(graphic, at: touch.position)
}
答案 0 :(得分:2)
此处的return
只是简化了方法,以便在previousPlaceDistance
小于50时停止。它不必返回值;实际上,如果没有为函数指定返回类型,不能返回值。
恰恰是这种短路,guard
是理想的,即
guard touch.previousPlaceDistance >= 50 else {
return
}
答案 1 :(得分:1)
此函数不需要在函数定义中返回任何内容。因此,在这种情况下,只需简单地调用return
即可。
例如,需要返回字符串的函数将如下所示。在这种情况下,您必须在return
语句中返回一个字符串。没有-> ...
行的函数意味着它不返回任何内容,或者所谓的void
func addImage(touch: Touch) -> String {
if touch.previousPlaceDistance < 50 {
return ""
}
...
}
对于你的第二部分问题,Touch
是一个快速写的课程,当你玩swift playgound时提供一些便利。但是它在默认的swift库中不存在。类似的库可以是UITouch
,here是苹果公司的文档。
答案 2 :(得分:0)
没有给出明确的返回类型a function or method returns Void
此功能的类型是() - &gt;无效,或“没有的功能 参数,并返回Void。“
Void的返回可以通过在您提供的函数中隐式地写return
来显式执行(即返回不写在函数或方法中的任何地方)。