如果未指定返回类型,“return”关键字如何返回非指定值? [斯威夫特游乐场]

时间:2017-06-29 18:36:51

标签: swift swift-playground

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)
}

3 个答案:

答案 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库中不存在。类似的库可以是UITouchhere是苹果公司的文档。

答案 2 :(得分:0)

没有给出明确的返回类型a function or method returns Void

  

此功能的类型是() - &gt;无效,或“没有的功能   参数,并返回Void。“

Void的返回可以通过在您提供的函数中隐式地写return来显式执行(即返回不写在函数或方法中的任何地方)。