これがコンパイラエラーを生成する理由を理解しています:
let initialProducer = SignalProducer<Int, NoError>(value:42)
let sideEffectProducer = initialProducer.on(next: { (answer: Int) in
return _
})
エラーは
タイプ '(Int) -> _' の値を予期される引数タイプ '(Int -> ())' に変換できませんか?
したがって、パラメーターは、返さnextれるパラメーターを使用してクロージャーを受け取ります。IntVoid_
しかし、なぜこれはうまくコンパイルされるのですか:
let initialProducer = SignalProducer<Int, NoError>(value:42)
let sideEffectProducer = initialProducer.on(next: { (answer: Int) in
return ""
})
を返していますがString、Voidなぜコンパイラは文句を言わないのでしょうか?