Kotlin高阶函数和协程

高阶函数

 

高阶使用

 

 

源码中的高阶函数

 

 

 

T.()和(T)的区别

 

调用myLet是把T当作参数传入,it就是传入的这个T,

myLet2中,T.()相当于把this传了过去,在this的环境中可以直接使用length方法,而myLet中必须通过it来调用

 

 

高阶的一些使用例子

lamda用来定义线程需要执行的方法,其他参数用来控制执行,赋上了默认值

 

自由控制的轮询器,counts控制次数,mm是需要执行的方法

 

 

KT范型

上下限,        super String extends String

泛型读取模式

<? extends FuClass> 只能读取不能修改,而且读取时只能用FuClass来接收,因为不能保证lists里面装的是FuClass的什么子类对象,但是都可以等于他们的父类

<? super ZiClass> 只能修改不能读取    只能add 子类,super里面父类不能确定,但是ZiClass都能转化为父类

kotlin中关键字   in=<? super ZiClass>    out=<? extends FuClass>

即 in标识的只能修改不能读取,out只能读取不能修改

 

协程(使用)

runBlocking进入到协程环境,launch启动协程,Dispatchers.IO(切换到IO线程)

 

非阻塞式自由切换线程

 

代替handler进行切换线程,主线程UI的绘制

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值