Hi~ kotlin and 喜马拉雅 系列文章之三
Hi~ kotlin and 喜马拉雅 系列文章之三 1224537200885059584 1201011416564359168
1

嗨喽~小伙伴们有几天没更新文章了 那我们开始吧!大家近期注意注意防护!

文章 对应 part 7--8 课

inititle 课程:https://www.bilibili.com/video/av69452769?p=7 inurl 仓库:https://github.com/cooek/Hiximalaya

那我们开始吧! 图片描述

这里 优化部分不用的变量

几行就搞定,需要有基础才能看懂

标签定义

在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签(参见语法)。 要为一个表达式加标签,我们只要在其前加标签即可。

this表达式

在Kotlin,有时候需要调用自身的函数或者变量,会用到this表达式

在类的成员中,this指的是该类的当前对象 在扩展函数或者带接受者的函数字面值中,this表示在点左侧传递的接收者参数 如果this没有限定符,它指的是最内层的包含它的作用域。要引用其他作用域中的this,请使用 标签限定符。

标签处返回

Kotlin 有函数字面量、局部函数和对象表达式。因此 Kotlin 的函数可以被嵌套。 标签限制的 return 允许我们从外层函数返回。 最重要的一个用途就是从 lambda 表达式中返回。 fun foo() { listOf(1, 2, 3, 4, 5).forEach lit@{ if (it == 3) return@lit // 局部返回到该 lambda 表达式的调用者,即 forEach 循环 print(it) } print(" done with explicit label") } 图片描述 这个是indicator的适配器需要传递上下文。

init方法

初始化

在Kotlin中,除了主构造函数和次构造函数外,还给我们提供了init代码块,供我们做一些初始化操作。 那么kotlin init代码块是什么时候执行的呢,和构造方法以及伴生对象一起使用时它们的执行顺序又是怎样的呢? 示范: class Person() {

/*属性*/
private var gender: Boolean = true

/*次构造方法*/
constructor(name: String,gender: Boolean):this() {
    println("constructor")
}

/*初始化代码块*/
init {
    println("Person init 2,gender:${gender}")
}

/*初始化代码块*/
init {
    println("Person init 1")
}

} 上面是一个简单的Person类,我们在类中写了一个次构造方法、两个init代码块和一个属性

此时,当我们调用Person("yzq",false)时,Person类中代码的执行顺序是什么样的呢

打印结果如下

Person init 2,gender:true Person init 1 constructor

结果

结果:是init执行顺序是在次构造函数之前的 一次是 init -> constructor->

Map集合存储

图片描述

方法的返回值

fun xxx方法:xx {}

方法后面跟返类型

when关键字

when(index){ 1->println("我帅") 2->println("我不帅") } 是一个分支语句 如果是1的话咋样 如果是二的话咋样

图片描述

anko

对了 kotlin 开发android 不用找控件的名字 就是 findViewById(R.id.xx)

毕竟以往的布局都是要从 XML 中解析出来,然后再到 LayoutInfalter 里面通过 Constructor.newInstance 反射创建出来的。而 Anko 则是直接创建 View,用代码构建布局,省去了解析 XML 的时间。

好了 写道最后 ,按套路来即可。 bye

1201011416564359168
如果你喜欢作者的文章,欢迎打赏鼓励
1224537200885059584
评论
发表评论
  • 拉大锯
    前面单词写错了,哈哈,indicator,不过你是会写的,后面写对了。 anko还有其他功能也可以介绍一下。除了找控件以外,还可以做其他事情。后面可以介绍一下。 感谢你的分享,看完了。很适合入门的同学。有java基础的,很容易转过来。
    2020-02-04 16:51  回复
    1153952789488054272
    • cooeks  回复 @拉大锯
      好的 师傅 哈哈哈
      cooeks 2020-02-04 20:24   回复 1201011416564359168
  • {{item.publishtime|formatDate}}  回复
    {{item.userid}}
    •  回复
      {{item.publishtime|formatDate}}   回复
1224537200885059584 1201011416564359168
欢迎关注作者微信公众号
{{subscriptionQrc.subname}}
推荐文章