美文网首页
2017-07-18-kotlin Android基础

2017-07-18-kotlin Android基础

作者: 王元 | 来源:发表于2019-07-29 23:35 被阅读0次

kotlin Android基础

1,实现一个基本的数据类

/**
 * kotlin定义的数据类,它会自动生成所有属性和它们的访问器,以及一些有用的方法,比如, toString()
 */
data class KotlinBean(
    var id : Int,
    var name : String,
    var desc : String
)

2,空安全: Kotlin,如很多现代的语言,是空安全的,因为我们需要通过一个 安全调用操
作符 (写做 ? ) 来明确地指定一个对象是否能为空。

//这里不能通过编译,list不能为空 
private var list : List<KotlinBean> = null; 

//这里通过编译,bean可以为空
private var bean : KotlinBean? = null; 

//无法编译, list可能是null,我们需要进行处理
list.toString()

// 只要在list != null时才会打印
list?.print()

// 智能转换. 如果我们在之前进行了空检查,则不需要使用安全调用操作符调用
if (list != null) {
    list.print()
}


// 只有在确保artist不是null的情况下才能这么调用,否则它会抛出异常
list!!.toString()
// 使用Elvis操作符来给定一个在是null的情况下的替代值
val name = bean?.name ?: "empty"

3,扩展方法
我们可以给任何类添加函数。它比那些我们项目中典型的工具类更加具有可读性。
举个例子,我们可以给fragment增加一个显示toast的函数:

fun Fragment.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT) {
    Toast.makeText(getActivity(), message, duration).show()
}

我们现在可以这么做:

fragment.toast("Hello world!")

4,函数式支持(Lambdas)
每次我们去声明一个点击所触发的事件,可以只需要定义我们需要做些什么,而不
是不得不去实现一个内部类?我们确实可以这么做,这个(或者其它更多我们感兴
趣的事件) 我们需要感谢lambda:

view.setOnClickListener { toast("Hello world!") }

这里只是挑选了很小一部分Kotlin可以简化我们代码的事情。现在你已经知道这门
语言的一些有趣的特性了,你可以考虑它是否是适合你的

相关文章

网友评论

      本文标题:2017-07-18-kotlin Android基础

      本文链接:https://www.haomeiwen.com/subject/lnswrctx.html