2016-10-07 19 views
0

渡された関数が引数として読み込まれたときに呼び出されることなく関数を別の関数に渡すにはどうすればよいですか?Swift:funcにfuncを渡すと、渡されたfuncが呼び出されます

ここでは、単純に引数として呼び出される関数の例を示します。

func second() { 
    print("second") 
} 

func first(_:()) { 
    print("first") 
} 

first(second()) 

-------console output-------- 
second 
first 

は、私がどこかの最初の身体の内側)(第2呼び出すことができるように、第1、第2に渡したい、しかし、あなたが見ることができるよう、第二引数であることによって、すぐに簡単に呼び出されます。

答えて

0
func first(_:()) { 
    print("first") 
} 

これは、引数としてVoidを取ります(無視する)。 Voidは、空のタプル()のタイプアリアです。あなたは意味:何も返さない(とそのパラメータfではなく、それを無視してを呼び出す)関数をとる関数である

func first(f:() -> Void) {} 

を。

first(second()) 

これはsecondを呼び出し、次にfirstに結果を渡します。あなたの意味:

first(second) 
関連する問題