で渡された関数を使用します。私は、方法本体の中でfをどう使うことができますか、より正確には、またはf()
またはf(_)
が動作しないので、どのように参照すればよいでしょうか。Scalaは、私は次のコードをお持ちの場合は_パラメータ
UPDATE:
object Wonderful { val wows = Buffer[Wow]() def yo(f: _ => Wow) { wows += f } } class Joy[+R](fs: Buffer[_ => R]) { def exalt() { fs.map(Wonderful.yo(_)) } }
そのバッファはパラメータ化できませんタイプ_ => Wow
の機能は、そのようなクラスから来て、このメソッドに渡されるので
はf
の種類がf: => Wow
に変更することができません=> R
では、エラーが表示されます。
更新2:私は第2部の説明を終える前に両方ともあなたが二番目に答えました!ありがとう!それはスピードです!
UPDATE 3:基本的に、私はScalaを学んでいます。私は考えることができるすべてを試してみようとしています。この特別なコードでは、次のようなことが起こります:私は3つの基本クラスを持っています:
- WorldObject - すべてのゲームオブジェクト(x、yなどあります)を表します。
- エミッター - 時間の経過とともにオブジェクトを放出するものを表します(WorldObjectを拡張します)。
- Funset - 呼び出されるとWorldObjectsを生成する関数のセット。将来、私はそれらに部分的に準備された引数を持つ関数を部分的に適用し、対応するファクトリメソッドに直接渡したいと思っていました。
- ワールド - すべてが行われます。
主な点は、Funsetの「生成」関数のコレクションを実行時に編集できるということです。その理由は、それがバッファーとして表されているからです。更新サイクルごとに、エミッタはFunsets関数のそれぞれを、世界で生成されたオブジェクトを明示する世界のクリエータ関数に渡します。
私はそれが理解できるように、私が説明したことを願っています...おそらく少しのビザールや間違ったアーキテクチャですが、とにかく、私はスカラについて今何かを学んだことがあります!
あなたはここで何をしようとしているのかについての詳細を追加できますか?私はまだ理解できません。 – missingfaktor
3回目の更新を参照%) – noncom