gpt4 book ai didi

kotlin - Kotlin-打印功能表达式

转载 作者:行者123 更新时间:2023-12-02 13:21:13 25 4
gpt4 key购买 nike

在C#中,我可以这样表示一个函数表达式

Expression<Func<int, int, int>> add = (a, b) => a + b;

函数表达式的字符串表示形式如下所示

(a, b) => (a + b)



在Kotlin中,我可以这样表示一个函数表达式
val add = { a: Int, b: Int -> a + b }

函数表达式的字符串表示形式如下所示

(kotlin.Int, kotlin.Int) -> kotlin.Int



有没有一种方法可以让Kotlin表示更符合C#的函数表达式,从而显示输入参数和函数体?

最佳答案

val add = { a: Int, b: Int -> a + b }

相当于
Func<int, int, int> add = (a, b) => a + b;

不要 Expression<...>。而且,如果打印出来的话,您会看到类似 System.Func<int, int, int>的内容,例如Kotlin中的内容。

我不认为Kotlin在标准库中没有 Expression这样的类型,或者您可以在没有语言支持的情况下实现它。它的反射API比Java的丰富(请参阅 KFunction ),但不允许您访问主体。您可以使用字节码操作库来完成此操作,但这将需要大量工作。

关于kotlin - Kotlin-打印功能表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com