Skip to content

grantonzhuang/kotlinLearningNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

扩展方法

如 判断一个字符串是否以英文字母开头

fun String.isEnglish(): Boolean {
    val firstChar = this[0].toInt()
    return (64 < firstChar && firstChar < 91) || (96 < firstChar && firstChar < 123)
}

字符串格式化

"varOneName is ${varOne}"

替代

String.format("%s is ", varOne)

lateinit

如果有需要稍后初始化的变量,可以使用 lateinit 关键字

lateinit var varLateInit: Object

Parcelable

Android Studio 上已经有了 kotlin 的 Parcelable 生成插件了。

Parcelable Code Generator(for kotlin)

类型推导

举一个例子,一个 ViewPager 中会展示好几个 fragment

class BaseFragment : Fragment()
class MusicsFragment : BaseFragment()
class ArtistsFragment : BaseFragment()
class AlbumsFragment : BaseFragment()

这几个 fragment 放在数组中

val pages: Array<Fragment> by lazy {
    arrayOf(MusicsFragment(), ArtistsFragment(), AlbumsFragment())
}

kotlin 会强制返回类型为 Array<BaseFragment>

假如只有一个 fragment 如

val pages: Array<BaseFragment> by lazy {
    arrayOf(MusicsFragment())
}

kotlin 会强制返回值的类型为 Array<MusicsFragment>

也就是 kotlin 会让函数返回 最精确的子类

About

Note when learning kotlin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published