关于kotlin
来源:4-8 EventChannel事件通道

demonCry
2022-08-24
没接触过kotlin, 请问1、2里的 x:y 是什么意思? 似乎是一种类型限制?意思是其子类都可以吗?
【3】 是匿名实现类吗?
最后请问下 这个例子中的 onListen 是自主触发的? flutter端有一个 .receiveBroadcastStream
就会触发一次这样的吗?
以上全是猜测 请老师斧正
写回答
1回答
-
马超老师
2022-08-25
1、第一个问题——x:y是什么意思?
就拿图中的1举例:
var eventSink :EventSink? = null
我们把这句话拆解一下,总共有4个部分:
var:这个表示声明一个可变的变量,即可被重复赋值。而val对应的是不可变的对象,表示只能赋值一次(和Java中的final非常类似,但是不完全不一样,切记!)。
eventSink:表示变量名
EventSink:冒号后面表示声明的类型
?:问号表示这个变量可以被赋值为空,默认不可为空。
综上,x:y表示声明一个y类型的变量,名叫x。整句话转化成Java代码如下:
EventSink eventSink = null;
2、第二个问题
对。
object:StreamHandler
就是声明一个StreamHandler类型的匿名内部类,大括号里面的是类实现。
3、onListen确实是自主触发的,在setStreamHandler注册完成之后就会回调onListen。
如果还有什么疑问,欢迎讨论
022022-10-07
相似问题