4
私はこのvideoの最初の例から高次関数を学習しようとしていました。ここに私のコードと出力があります。コトリン反射は利用できません
コード
fun lowercase(value: String) = value.toLowerCase()
fun higherOrder(value:String, op: (String) -> String) : String {
println("Executing higher order fun $op")
return op(value)
}
fun main(args: Array<String>) {
println(higherOrder("HELLO", ::lowercase))
println(higherOrder("hello", {it -> lowercase(it)}))
println(higherOrder("HeLlo", { x -> lowercase(x) }))
println(higherOrder("Hello", { lowercase(it) }))
}
出力
Executing higher order fun function lowercase (Kotlin reflection is not available)
hello
Executing higher order fun Function1<java.lang.String, java.lang.String>
hello
Executing higher order fun Function1<java.lang.String, java.lang.String>
hello
Executing higher order fun Function1<java.lang.String, java.lang.String>
hello
Process finished with exit code 0
だから私の質問は、なぜそれがKotlinの反射が利用できません印刷しないのですか?
それでおしまい。 org.jetbrains.kotlinをコンパイルする:kotlin-reflect:$ kotlin_version "をbuild.gradleに追加して問題を修正しました。 –
リフレクションライブラリを追加すると、自分のビルドで問題が解決しましたが(素晴らしい!)、APKをビルドできません。コンパイラは '実行に失敗したタスク 'をスローします:app:transformDexArchiveWithExternalLibsDexMergerForDebug'.'それを修正する理由は何ですか? –