首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin -打印函数表达式

Kotlin -打印函数表达式
EN

Stack Overflow用户
提问于 2019-05-25 10:24:13
回答 1查看 200关注 0票数 1

在C#中,我可以表示如下的函数表达式

代码语言:javascript
复制
Expression<Func<int, int, int>> add = (a, b) => a + b;

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

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

在Kotlin中,我可以表示如下的函数表达式

代码语言:javascript
复制
val add = { a: Int, b: Int -> a + b }

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 14:16:45

代码语言:javascript
复制
val add = { a: Int, b: Int -> a + b }

等于

代码语言:javascript
复制
Func<int, int, int> add = (a, b) => a + b;

不是对Expression<...>。如果你把它打印出来,你会看到类似System.Func<int, int, int>的东西,就像在科特林。

我不认为Kotlin在标准库中有类似Expression的类型,也不认为您可以在没有语言支持的情况下实现它。它的反射API比Java的更丰富(参见KFunction),但不允许您访问主体。您可以使用字节代码操作库来完成这一任务,但这将是一项艰巨的工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56303927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档