2017-06-29 84 views
1

Swift Playground提供了以下代码。代码的返回会导致放在触摸上的图像被分开。当没有指定返回值并且返回关键字没有跟随任何东西时,函数如何工作?有没有默认的返回值,并输入什么时候没有指定?另外,当我在Swift中使用这个代码(mac上的实际编程语言)时,Touch类型不存在。我是否需要为Swift Playground的代码导入特定的库以在Swift中工作?当未指定返回类型时,“返回”关键字如何返回非指定值? [Swift Playground]

func addImage(touch: Touch) { 
    if touch.previousPlaceDistance < 50 { 
     return 
    } 

    let graphic = Graphic(image: ⭐️) 
    scene.place(graphic, at: touch.position) 
} 
+1

触摸不存在,因为您不会在Mac上触摸屏幕,只能在iPhone或iPad上触摸屏幕 –

+0

当创建实际应用程序时无法使用Touch类时,学习如何使用Touch类? –

+0

那么,你可以使用它的iOS,而不是OSx –

回答

2

return这里简单地短路的方法,以便它停止,如果previousPlaceDistance小于50.不必返回一个值;实际上,如果没有为函数指定返回类型,则不能返回一个值。

正是这种短路的地方guard将是理想的,即

guard touch.previousPlaceDistance >= 50 else { 
    return 
} 
+0

Thx的解释:) –

1

此功能并不需要在函数定义返回任何东西。所以在这种情况下只需拨打return即可。

例如,需要返回字符串的函数看起来像这样。在这种情况下,您将不得不在return声明中返回一个字符串。如果没有-> ...行功能意味着它没有返回值,或所谓的void

func addImage(touch: Touch) -> String { 
    if touch.previousPlaceDistance < 50 { 
     return "" 
    } 
    ... 
} 

对于你的问题的第二部分,Touch是写在迅速提供当你迅速playgound玩弄一些便利的类。但是它在默认的swift库中不存在。一个类似的库可以是UITouchhere就是苹果的文档。

+0

Thx!在创建实际应用程序时无法使用Touch类时,学习如何使用Touch类? –

+0

@ M.AB我认为苹果提到,*在iPad上学习严肃的代码。以一种非常有趣的方式。*。斯威夫特操场只是试图向你介绍,快速编码是有趣和容易的。然而,即使你不能直接在swift中使用'Touch'类,默认的'UITouch'肯定比'Touch'更强大 –

0

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

类型这一功能的是() - >太虚,或“有没有 参数,函数返回void。”

可以通过编写return来明确地执行Void的返回,就像您提供或隐含的函数(即,返回没有在函数或方法内的任何地方写入)一样。