Oさんからの質問です。
Q.
swift3 で C でいうところの関数ポインタ呼び出しをしたいのですが可能でしょうか?
そもそも不可能だったりしますか?
以下擬似コード
q.swift
var _action //こんな変数を用意する
func foo( action: ( ( Void ) -> Void )? = nil )
{
_action = action // 別変数に代入する
}
func bar()
{
_action() // こんな感じで呼び出す
}
知っている方教えてくださいませ!
A.
こんな感じですかねぇ。
以下、プレイグラウンド用。
a.swift
var _action : ( ( Void ) -> Void )?
func hoge() {
print("hello")
}
func foo( action: ( ( Void ) -> Void )? = nil )
{
_action = action
}
func bar() {
_action?()
}
foo(action: hoge);
bar();