函数调用问题

来源:3-5 函数

li想

2020-04-01

函数这节有个疑问,比如你说的val:x(Foo,String,Long)->Any=Foo::Bar,x是接收Bar方法的返回值,你在调用Bar方法时应该传递一些具体的参数值,你这个括号里的String,Long啊,这只是类型。而且如果我把括号里的参数值具体化,比如传固定的某个值,或者我新建某个变量传递进去,但val:x(Foo,String,Long)->Any=Foo::Bar这个会报错,这是为什么,括号内的参数不能写具体值吗,或者传递具体变量?

写回答

1回答

bennyhuo

2020-04-01

这里没有函数调用,不涉及参数传递。

val x: (Foo, String, Long) -> Any = Foo::bar

Foo::bar 是函数引用,不是函数调用。将函数引用赋值给 x,意味着 x 其实就指向了这个函数,而不是说 x 是这个函数的返回值。

0
1
li想
非常感谢!
2020-04-08
共1条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程