kotlin各变量和使用方法详解

1、var和val的区别:

var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和java中声明变量的方式一样。

val是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。

2、在kotlin中不用findviewbyId的方式查找页面定义的id,可以在类中直接调用:

首先需要在build.gradle中加入一行代码:

apply plugin: 'kotlin-android-extensions'

截图如下:

在类中可以直接使用定义的id:需要引入包即可;非常方便,本来看了kotlin半天感觉用处不大时,看到了这个方法,决心要把kotlin学下去。

import kotlinx.android.synthetic.main.activity_main.*

3、在定义变量bean时的get、set方法改为:

  1. var id: String? = null

  2. var name: String? = null

4、定义方法时直接写成fun的形式:for循环也进行了修改

如果是0到3,则写为:

for(i in 0 .. 3){

}

fun getValues() {
    valueList.clear()
    val value1 = BaseValue("1、dialog的使用")
    val value2 = BaseValue("2、Retrofit")
    val value3 = BaseValue("3、图片选择和裁剪")
    valueList.add(value1)
    valueList.add(value2)
    valueList.add(value3)
}

5、进行点击事件时new AdapterView.OnItemClickListener()改为

object : AdapterView.OnItemClickListener

6、以前的设置adapter时gridview_picture.setAdapter(adapter);改为:

gridview_picture!!.adapter = adapter

?:表示当前是否对象可以为空

!!: 表示当前对象不为空的情况下执行

var b: String? = "abc"  表示b可以为空
b?.length

表示当b不为空的情况下执行

val l = b?.length ?: -1

如果b不为null,将返回b的长度,如果为null,将返回-1

笼统来说,Kotlin的设计者应该就是想用冒号来笼统表示类型这一概念。

7、list定义方式:

val list: List<String> = listOf("1、dialog的使用","2、Retrofit","3、图片选择和裁剪")

8、将内容转为kotlin时,报错is a mutable property that could have been changed by this time

是因为在引用这个类的文件时没有判断为空:如下加上!!后就好使了。

popWindow!!.setFocusable(true)

9、类中实现某个方法impletents改为

class MvpActivity : BaseActivity(), FindItemsInteractor.OnFinishedListener {

10、kotlin中类的命名方式:

大家在定义一个类时,有时候需要定义该类的构造方法,那么在kotlin中可以直接下载类名下,如:

class MvvmModel(val view : MvvmView, val adapter : MvvmAdapter) : BaseLoadListener<User> {

特别要注意的是,用的是圆括号,如果用的是尖括号需要定义为抽象方法,代表着调用该类时需要传的值。

猜你喜欢

转载自blog.csdn.net/f552126367/article/details/81074931