美文网首页
2019-07-24 Kotlin 基础整理

2019-07-24 Kotlin 基础整理

作者: 喜欢萌妹子的少年 | 来源:发表于2019-08-12 14:24 被阅读0次
    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<String> 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 基础整理

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