为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Kotlin
  • 课程名称:一课掌握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")// 指定形参的名字
    

学习心得

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消