继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第7天-C01学习Kotlin

taoy
关注TA
已关注
手记 94
粉丝 9
获赞 1
  • 课程名称:一课掌握Kotlin 突破开发语言瓶颈
  • 章节名称:
    • 第3章:内置类型
      • 3-5函数
  • 讲师姓名:bennyhuo
  • 时间:2022-08-010 17:50

课程内容

一等公民:函数。这是因为函数有自己的类型,可以赋值,传递,并在合适的条件下调用

  • 函数返回类型如为Unit,相当于Java的void

  • 要区分函数与方法

    • 方法可以认为是函数的一种特殊类型
    • 从形式上,有receiver的函数即为方法
    • 所以说,方法就是外面套了一个类的函数,必须要通过这个类的实例来调用这个方法,这个实例就是receiver
  • 函数类型

    • (参数列表) -> 函数返回类型
    • Receiver.(参数列表) -> 函数返回类型,也可写成(receiver, 参数列表) -> 函数返回类型
  • 函数的引用

    • 类似C语言中的函数指针,可用于函数传递

      函数声明 函数引用
      fun foo() {} ::foo
      class Foo { fun bar(p0:String,p1:Long) : Any {……}} Foo::bar
      val foo = Foo()
      val m:(String, Long) -> Any = foo::bar
      receiver没有的情况
      val m0: Function3<Foo, String, Long, Any> Foo::bar
      (Foo, String, Long) -> Any
      Foo.(String, Long) -> Any
      Function3<Foo, String, Long, Any>
      Foo::ba
  • 变长参数

    fun main(args: Array<String>) {
        println(args.contentToString()
    }
    
    fun main(vararg args: String) {
        println(args.contentToString())// 本质上就是IntArray类型
    }
    

    listOf(1, 2, 3)// 就是一个变长参数应用的例子

  • 多返回值

    fun multiReturnValues(): Triple<Int, Long, Double> {
        return Triple(1, 3L, 4.0)
    }
    val (a, b, c) = multiReturnValues()// 用解构方式获取返回值
    
  • 默认参数(要作为参数列表中的最后一个)

    fun defaultParameter(x: Int, y: String, z: Long = 0L) {//z有默认值
        ……
    }
    defaultParameter(5, "abc")
    
  • 具名参数

    fun defaultParameter(x: Int = 5, y: String, z: Long = 0L) {
        ……
    }
    defaultParameter(y = "Hello")// 指定形参的名字
    

学习心得

本章开始的函数学习进入到难度较高层次,函数与方法区分,函数可以继续被抽象出类型,都是很有点让匪夷所思的,但反复看很多次,也有了感觉,对这种抽象也可以有了自己的理解,这样才会对加深理解有帮助。
函数学习路线
函数本节回顾

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP