2019-07-24 Kotlin 基础整理

2019-07-24 Kotlin 基础整理_第1张图片
WechatIMG82.png
后期初始化属性

Android开发中对组件变量的声明与赋值,以及在使用Dagger2注解变量等。这就需要Kotlin中特有的后期初始化属性来满足这个需求了。当然这里还为大家讲解延迟初始化,在实际的开发中也是很有用处的。

// 声明组件
private lateinit var mTabLayout : TabLayout

lateinit var a : Int // 会报错。因为不能用于基本数据类型。

// 赋值
mTabLayout = find(R.id.home_tab_layout)

// 使用
mTabLayout.setupWithViewPager(mViewPager)

延迟初始化属性

指当程序在第一次使用到这个变量(属性)的时候在初始化。

  • 使用lazy{}高阶函数,不能用于类型推断。且该函数在变量的数据类型后面,用by连接。
  • 必须是只读变量,即用val声明的变量
// 声明一个延迟初始化的字符串数组变量
private val mTitles : Array by lazy {
    arrayOf(
            ctx.getString(R.string.tab_title_android),
            ctx.getString(R.string.tab_title_ios),
            ctx.getString(R.string.tab_title_h5)
    )
}

// 声明一个延迟初始化的字符串
private val mStr : String by lazy{
    "我是延迟初始化字符串变量"
}

你可能感兴趣的:(2019-07-24 Kotlin 基础整理)