[解決済み】Kotlin:関数を他の関数にパラメータとして渡すには?
2022-04-03 09:42:38
質問
与えられた関数foo 。
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
できるのです。
foo("a message", { println("this is a message: $it") } )
//or
foo("a message") { println("this is a message: $it") }
さて、次のような関数があるとしよう。
fun buz(m: String) {
println("another message: $m")
}
fooにパラメータとしてbuzを渡す方法はありますか? みたいな感じ。
foo("a message", buz)
解決方法は?
使用方法
::
で関数参照を意味し、次に
fun foo(msg: String, bar: (input: String) -> Unit) {
bar(msg)
}
// my function to pass into the other
fun buz(input: String) {
println("another message: $input")
}
// someone passing buz into foo
fun something() {
foo("hi", ::buz)
}
Kotlin 1.1以降 では、クラスのメンバである関数を使用できるようになりました(" 呼び出し可能な参照の束縛 ")、関数参照演算子の前にインスタンスを付けることです。
foo("hi", OtherClass()::buz)
foo("hi", thatOtherThing::buz)
foo("hi", this::buz)
関連
-
[解決済み] Kotlin 三項条件演算子
-
[解決済み] KotlinのMutableListを空のMutableListに初期化するには?
-
[解決済み】KotlinでJavaの静的メソッドに相当するものは何ですか?
-
[解決済み】Kotlinでコレクションを複数フィールドでソートする【重複あり
-
[解決済み】Kotlinでデータクラスを拡張する
-
[解決済み】Kotlin:関数を他の関数にパラメータとして渡すには?
-
[解決済み] KotlinでStringをLongに変換する方法は?
-
[解決済み] なぜKotlinではJavaの静的フィールドの代わりのようなものとして「コンパニオンオブジェクト」を使うのか?
-
[解決済み] Kotlinの複数変数let
-
[解決済み] Kotlinのfoldとreduceの違い、いつどちらを使うか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Kotlinのメンバー宣言に期待する
-
[解決済み] Kotlinの'let'キーワードの目的は何ですか [重複]。
-
[解決済み] Kotlinのvarとvalの違いは何ですか?
-
[解決済み】Kotlinのダブルバング(!)演算子とは?
-
[解決済み】Kotlin:関数を他の関数にパラメータとして渡すには?
-
[解決済み】Kotlin : パブリック get プライベート set var
-
[解決済み] '変数'が変更可能なプロパティであるため、'型'へのスマートキャストは不可能である。
-
[解決済み] Kotlinでrun、let、apply、also、withを使うべき例
-
[解決済み] Kotlinでリソースからテキストファイルを読み込むには?
-
[解決済み] Kotlinでhashmapを繰り返し処理するには?