2017-06-29 82 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的返回,就像您提供或隱含的函數(即,返回沒有在函數或方法內的任何地方寫入)一樣。