Kotlin学习
文章平均质量分 91
BinBalll
这个作者很懒,什么都没留下…
展开
-
Kotlin尾递归优化
Kotlin尾递归优化 尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。 1. 尾递归 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。 简单地说,尾递归就是某个函数的最后一步是调用另一个函数,且在这一步中,除了调用函数外,前后没有其他操作。 因此,尾递归就是递归的一种特殊形式。 //尾调用 fun tailCall(n : Int)原创 2021-01-25 20:38:10 · 191 阅读 · 0 评论 -
Kotlin语法糖(长期更新)
Kotlin 语法糖 1.当函数体只有一行的时候,可以直接将函数体写在函数定义尾部,中间用等号连接** fun largerOne(a:Int,b:Int):Int= max(a,b) 2.所有定义了setter和getter方法的字段,在Kotlin中都可以通过赋值语法来直接操作 view.setOnClickListener { it.visibility = View.INVISIBLE } 3.?.操作符用合并为一个操作。只有当调用变量本身不为null时,方法调用才成立,否则整个表达式返回nul原创 2020-10-25 13:51:30 · 645 阅读 · 0 评论 -
Kotlin学习(四):空指针检查
4.1 可空类型系统 Kotlin在代码编译阶段会检查所有参数和变量是否为非空,若有空值则报错 当我们的业务逻辑需要某个参数或变量为空时,Kotlin为我们提供了一套可为空的类型系统 但在使用这套系统时,我们需要在编译前就将所有潜在的空指针异常处理掉,否则代码将无法编译通过 可为空的类型系统,就是在原来类型名后加上?,如Int表示不可为空的整型,而Int?则表示可为空的整型 对于上图,在类型名Student后加上问号,改为Student?,就能传入null参数了 但又出现了新的红线,因为此时可传入nul原创 2020-10-25 13:48:19 · 341 阅读 · 0 评论 -
Kotlin学习(三):Lambda编程
3.1 集合创建与遍历 3.1.1 List和Set集合 传统意义上,集合主要是List和Set,再广泛一点,还有Map这样的键值对数据结构。这些在Java中都是接口,List主要实现类是ArrayList和LinkedList,Set的主要实现类是HashSet,Map的主要实现类是HashMap。 现在需要创建一个包含许多水果名称的集合,在Java中: var list = ArrayList<String>() list.add("apple") list.add("banana") li原创 2020-10-25 13:45:07 · 133 阅读 · 0 评论 -
Kotlin学习(二)面向对象
面向对象编程 2.1 类与对象 相比Java,Kotlin在实例化对象时不需要使用new关键字 class Person { var name = "" var age = 0 fun sayHello() { println("Hello,I'm " + name) } } val p=Person() 2.2 继承与构造函数 2.2.1 继承 Kotlin中类默认为不可继承,要使类能被继承,需要在类前加上open关键字 open class Person原创 2020-10-25 13:43:31 · 78 阅读 · 0 评论 -
Kotlin学习(一)逻辑控制
1.1 if条件语句 相比于Java,Kotlin的if条件语句可以有返回值 fun largerOne(a:Int,b:Int):Int= if(a>b){a}else{b} 1.2 when条件语句 在Kotlin中,when语句类似Java中的Switch语句,其逻辑为:匹配值 -> { 执行逻辑 } fun checkType(num:Number){ when(num){ is Int->println("num is Int")原创 2020-10-25 13:35:21 · 110 阅读 · 0 评论