美文网首页
kotlin常用操作符

kotlin常用操作符

作者: 甲乙丙丁你我他 | 来源:发表于2017-05-29 17:31 被阅读0次

1:Elvis操作符 ?:

如果 ?: 左边表达式非空,elvis操作符就会返回左边的结果,否则返回右边的结果。

请注意,仅在左侧为空的时候,右侧的表达式才会计算。

fun elvisTest(b: String?) {
    val a= b?.length ?: -1
    // 等价于 val a:Int = if( b!= null) b.length else -1
    Log.d("alen","b is${b}" + ",a is " +a)
}

2:类型转换as和安全转换 as?

当使用 as 转型的时候,可能会经常出现 ClassCastException。 所以,现在可以使as?安全转型,当转型不成功的时候,它会返回 null。

fun safeCast(param: Any) {

    val m: Int? = if(param is Int) param else null
    Log.d("alen","param is ${param}" + ",m is " + m)

    val n: Int? = param as? Int
    Log.d("alen","param is ${param}" + ",n is " +n)
}
3:kotlin空安全(Null Safety)

每一个开发人员都会遇到这样的问题:在使用某个对象时,必须得考虑这个对象是否为空。如果对象可能为空,则不得不需要写 if(object != null) 之类的代码,如果判断条件写反,或者少写了一个条件判断,应用就会在运行时出现Crash 了。于是我们千辛万苦写的代码,到头来却被各种 NullPointerException 害苦。而现在 Kotlin Null Safety 能帮助我们节省时间,脱离空指针的苦海。

Kotlin 定义变量有两种方式,可以为 Null 和不可以为 Null。在变量类型后面加?表示该变量可以为 Null

//定义一个可以为null的变量
var name: String? = null
//定义一个不可以为null的变量,如果此时赋值为null,则会报异常
val country: String = "china"

//报错,可能为null的变量不可以直接调用其方法
//        var length: Int = name.length

//如果name为null则pass,如果name不为null则调用count()方法
var length: Int? = name?.count()

//不管name是否为null都调用count()方法,如果为null,则抛出NullPointerException
var count: Int = name!!.count()

//由于country不为null,则可以直接调用其count方法
var countryCount: Int = country.count()

4:冒号:

1、类型和超类型之间的冒号前要有一个空格

2、实例和类型之间的冒号前不要空格

// 定义全局变量时
var str: String? = null

// 类的继承与变量定义
class KotlinTestActivity<T : Serializable>(name: String) : Activity() {

}

5:类型判断符 is

检查某个实例是否是某个类型,如果判断出属于某个类型,那么判断后的分支中可以直接可当该类型使用,无需显示转换。

fun getStringLength(obj: Any): Int {

    if(obj is String && obj.length >0) {
       return obj.length
    }
    return -1;
}
6:范围操作符 .. 以及 in

使用 in 运算符来检查某个数字是否在指定区间内

for(i in 1..5) {
    Log.d("alen","i is " +i)
}
// 结果
// i is 1
// i is 2
// i is 3
// i is 4
// i is 5

downTo()函数

//区间内循环:downTo()函数
for(i in 4 downTo 1) {
    //倒序遍历
    Log.d("alen","i is " +i)
}
// i is 4
// i is 3
// i is 2
// i is 1

step()函数

可以进行任意数量的迭代,而不是每次变化都是1

// step()函数 可以进行任意数量的迭代,而不是每次变化都是1
for(i in 0..5 step 2) {
   Log.d("alen","i is " +i)
}
// i is 0
// i is 2
// i is 4

// 以步长为2从4到1进行循环
for(i in 4 downTo 1 step 2) {
   Log.d("alen","i is " +i)
}
// i is 4
// i is 2

多行输入符 三个双引号

三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留.

valstr = """
          one
          two
              """
//等价于
val str = "one\ntwo"
val str = "one"+"\n"+"two"

如果学习过程中有新的操作符会进行补充。

相关文章

  • Kotlin學習筆記(一)

    kotlin類型安全 kotlin常用操作符 Elvis操作符 ?:如果?:左邊表達式非空,elvis返回左邊結果...

  • kotlin invoke操作符重载妙用

    kotlin支持操作符重载,例如我们经常用到的 + 、- 操作符,最近看一些知名三方库用 kotlin 写的源码,...

  • Kotlin之常用操作符

    前言 熟悉Kotlin中常出现的一些操作符的用法,有助于我们快速入门Kotlin,下面将列举Kotlin中常用的一...

  • Kotlin 常用操作符

    常用操作符Kotlin 的操作符跟 RxJava 基本一致,不需要额外记忆。 下标操作类 判断类 过滤类 转换类 ...

  • 学习Kotlin中出现的常用操作符

    学习koltin,弄懂它的操作符的意思很重要,下面就记录一下Kotlin常用操作符: 1、类型判断符 is 检查某...

  • Kotlin 常用操作符

    下标操作类 contains —— 判断是否有指定元素 elementAt —— 返回对应的元素,越界会抛Inde...

  • kotlin常用操作符

    1:Elvis操作符 ?: 如果 ?: 左边表达式非空,elvis操作符就会返回左边的结果,否则返回右边的结果。 ...

  • Kotlin语法基础(四)

    Kotlin语法基础篇(四) 相关链接: kotlin语言中操作符的重载 一、操作符及其重载 操作符分类可简单分为...

  • Kotlin常用集合操作符

    创建集合 List: 1.创建一个空List:val emptyList =emptyList()2.创建一个普通...

  • Kotlin常用操作符总结

    常用操作符 1、? 操作符
    表示对象可能为空,或者对象可以为空 2、 ?: 操作符
    相当于 i...

网友评论

      本文标题:kotlin常用操作符

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