16696


func（funcA）内で別のfunc（funcB）を定義して、  
funcA内の定義箇所の前でfuncBを使おうとすると、

`Use of local variable 'testFuncB' before its declaration`

とエラーがでます。

メンバー変数のようにあらかじめfunc名を宣言することはできますか？


CC BY-SA 3.0
2015-09-16T11:33:44.393
16691
2015-09-16T12:20:42.880
12297
question
swift
Swiftでメンバー変数のようにfuncを宣言することはできますか？


C/C++の前方宣言のようなことをやりたいという意味であれば、残念ながらSwiftではできません。

関数を代入するための変数を宣言しておけば、記述上は関数の宣言より前に関数を呼び出しを書くことはできます。

[code]

    var funcB: ((Int) -> Int)!
    
    func funcC() {
        println(funcB(5))
    }
    
    func funcA() {
        funcB = { (i: Int) -> Int in
            return i * 2;
        } 
    }
    
    funcA()
    funcC()
    
[/code]


CC BY-SA 3.0
2015-09-16T12:20:42.880
16696
2015-09-16T12:20:42.880
3639
16691
answer