Kotlin研发第二十四弹—— 动态类型

26 篇文章 0 订阅
25 篇文章 0 订阅

动态类型

  • 动态类型

动态类型

作为静态类型的语言,kotlin仍然拥有与无类型或弱类型语言的调用,比如JavaScript。为了方便使用,Dynamic应运而生

val dyn:dynamix=

dynamic类型关闭了kotlin的类型检查:

这样的类型可以分配任意变量或者在任意的地方作为参数传递

任何值都可以分配为dynamic类型,或者作为参数传递给任何接受dynamic类型参数的函数

这样的类型不做null检查

dynamic最奇特的特性就是可以在dynamic变量上调用任何属性或任何方法

dyn.whatever(1, "foo", dyn) // 'whatever' is not defined anywhere
dyn.whatever(*array(1, 2, 3))

在JavaScript平台上这样的代码会按照现有的样子编译:Kotlin中的dyn.whatever(1)在生成的代码中变成JavaScript语言的dyn,whaatever(1)

动态调用可以返回dynamic作为结果,因此我们可以轻松实现链式调用:

dyn.foo().bar.bat()

当动态调用传递一个lambda表达式时,所有的参数默认都是dynamic

dyn.foo{
    x->x.bat()//x is dynamic
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值