赞
踩
作为静态类型的语言,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
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。