[解決済み] VoidCallbackにパラメータを持つ関数を渡す
2023-06-26 08:25:35
質問
VoidCallbackにパラメータを持つFunctionを渡すことはできますか?
例えばこのようなものです。
class MyClass {
void doSomething(int i){
}
MyOtherClass myOtherClass = new MyOtherClass(doSomething);
}
class MyOtherClass {
final VoidCallback callback(int);
MyOtherClass(this.callback);
callback(5);
}
どのように解決するのですか?
の宣言は
VoidCallback
は
typedef void VoidCallback();
それは、引数ゼロで呼び出すことができ、有用な値を返さないタイプの関数です。それはあなたが欲しいものではなさそうです。 プログラムが構文的に有効ではないので、あなたが何を望んでいるかは完全に明らかではありませんが、これはあなたのために働くでしょうか。
class MyClass {
static doSomething(int i) { /* ... */ }
MyOtherClass myOtherClass = new MyOtherClass(doSomething);
}
class MyOtherClass {
final void Function(int) callback;
MyOtherClass(this.callback);
void callCallaback() { callback(5); }
}
ここでは
callback
フィールドの型を、1つの整数の引数で呼び出すことができ、有用な値を返さない関数の型であると定義しています。また
doSomething
メソッドはそのタイプを持っているので、これを
callback
.
また、typedefを使って関数に名前をつけることもできます。
typedef Int2VoidFunc = void Function(int);
// or: typedef void Int2VoidFunc(int arg);
class MyOtherClass {
final Int2VoidFunc callback;
MyOtherClass(this.callback);
void callCallaback() { callback(5); }
}
効果はまったく同じで、関数型に短い名前を使えるようになるだけですが、それはそれをたくさん使う場合にのみ本当に意味があることです。
関連
-
[解決済み] Flutter SVG レンダリング
-
[解決済み] TextFieldのBorder Colorを変更できない。
-
[解決済み] DartでListを等しく比較するにはどうしたらいいですか?
-
[解決済み] ステートレスウィジェットクラスのKeyとは何ですか?
-
[解決済み] POSTリクエスト中にCERTIFICATE_VERIFY_FAILEDエラーが発生した場合、どのように解決しますか?
-
[解決済み] DartのNULLチェックのイディオムやベストプラクティスは何ですか?
-
[解決済み] Dartのグローバル変数
-
[解決済み] Flutter (Dart) アプリにタップでクリップボードにコピーする機能を追加するには?
-
[解決済み] Dartで他のファイルを参照するには?
-
[解決済み] Dartで、再発する関数を実行するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "extends" 対 "implements" 対 "with" (拡張する)。
-
[解決済み] Flutter SVG レンダリング
-
[解決済み] Dart マルチプルコンストラクタ
-
[解決済み] POSTリクエスト中にCERTIFICATE_VERIFY_FAILEDエラーが発生した場合、どのように解決しますか?
-
[解決済み] Flutter でプログラム的にモードなボトムシートを閉じる
-
[解決済み] Flutter (Dart) アプリにタップでクリップボードにコピーする機能を追加するには?
-
[解決済み] Dartの "var "型と "dynamic "型の違い?
-
[解決済み] Flutterで画面間のデータを受け渡す
-
[解決済み] flutterでページをスクロールする方法
-
[解決済み] Flutter - アセットからテキストファイルを読み込む