关于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个部分:

  1. var:这个表示声明一个可变的变量,即可被重复赋值。而val对应的是不可变的对象,表示只能赋值一次(和Java中的final非常类似,但是不完全不一样,切记!)。

  2. eventSink:表示变量名

  3. EventSink:冒号后面表示声明的类型

  4. ?:问号表示这个变量可以被赋值为空,默认不可为空。

综上,x:y表示声明一个y类型的变量,名叫x。整句话转化成Java代码如下:

EventSink eventSink = null;


2、第二个问题

对。

object:StreamHandler

就是声明一个StreamHandler类型的匿名内部类,大括号里面的是类实现。


3、onListen确实是自主触发的,在setStreamHandler注册完成之后就会回调onListen。


如果还有什么疑问,欢迎讨论

0
2
马超老师
回复
demonCry
这个是kotlin的关键词,表示声明一个StreamHandler的匿名内部类
2022-10-07
共2条回复

基于Flutter 3.x 实战跨平台仿抖音App混合开发

以短视频APP为例,快速上手原生/Flutter 混合开发

481 学习 · 120 问题

查看课程