私はパラメータとして任意の機能を取り、それをSwiftで実行できる関数を記述しようとしています。私はこのアプローチを試してみました。その後、パラメータとして関数を渡してSwiftで実行するには?
public func anyFunc<P, T> (_ function: (P...) -> T) {
_ = function()
}
とでそれをしよう:
anyFunc(print("hello"))
これはERROR: 'print' produces '()', not the expected contextual result type '(_...) -> _'
どのように私はこれを達成(そしてそれが実現可能である)ことができますを生成しますか?
?渡された関数がvoidを返しますか? –
'print(" hello ")'は結果を返す関数 'print'に対して_a call_です(空のタプル'() ')。したがって、 'anyFunc'へのあなたの呼び出しは' anyFunc(()) 'と等価です。これは当然' anyFunc'の引数の不一致です。 – dfri
一般に、任意の数の引数を取る場合、引数を渡さずに 'function()'をどのように呼び出すと思いますか? – jtbandes