作者回复: 嗯,是的,新版本没这个限制了。 毕竟视频录的时候还是1.1时候
作者回复: 其实你在kotlin中调java的interface也是不能直接传lambda的,你看到的像setonclicklistener这样的方法之所以能够直接传lambda,是因为kotlin单独做了重载,提供了一个可以传lambda的扩展函数
作者回复: 闭包不能显示使用return,但是闭包的最后一条语句的结果就是闭包的返回值,视频里面有讲的。 因为闭包在编译以后会变成Function接口对象,这个对象的方法已经固定了返回类型,所以不能再用return。
作者回复: 你的代码应该没问题,可以在github参考一下视频中的代码工程,看看是不是包名或者工程有问题。
作者回复: 可以这么理解,包括kotlin 中的函数参数也可以这么理解
作者回复: 贴一下代码看看
作者回复: 是的,没错
作者回复: 当然不行,你还得声明fun show(block: (str: String)-> Unit){ }这样的方法
作者回复: 是不同类型,不支持继承的,没有继承lambda的语法
作者回复: function实际上与lambda是两种类型,只是编译后会被映射成同一个类型,你要声明lambda类型应该是()->Unit这种