Kotlin每日小记

Kotlin每日小记

今天又是每日小记时刻,让我们继续学习Kotlin

匿名函数
并非每一个函数都需要一个名称。某些函数通过输入和输出更加直接进行标识,您可以保留对这个函数的引用,以便日后使用引用调用该匿名函数。与其他引用一样,可以在应用中传递引用。

val stringLengthFunc: (String)-> Int ={ input -> input.length}
与命名函数一样,匿名函数也可以包含任意数量的表达式。 函数的返回值是最终表达式的结果。
在上面的示例中,stringLengthFunc 包含对一个匿名函数的引用,该函数将 String 当作输入,并将输入 String 的长度作为 Int 类型的输出返回。因此,该函数的类型表示为 (String) -> Int。不过,此代码不会调用该函数。要检索该函数的结果,您必须像调用命名函数一样调用该函数。调用 stringLengthFunc 时,必须提供 String

val stringLengthFunc: (String) -> Int = { input ->
    input.length
}
val stringLength: Int = stringLengthFunc("Android")
高阶函数

一个函数可以将另外一个函数作为参数,将其他函数用作参数的函数称为高阶函数。此模式对组件之间的通信(其方式与在Java中使用接口相同)

fun StringMapper(str: String ,Mapper: (String )->Int ):Int{
 Return mapper(str)
}
stringMapper("Android", { input ->
    input.length
})

就是对象归类,如果希望自己去定义类型,就可以使用Class关键字来定义类,如下:

class Car
属性

类使用属性来表示状态。属性是类级变量,可以包含getter,setter和后备字段。由于汽车需要轮子来驱动的原理。添加Wheel对象作为Car的属性。

 class Car{
Val wheels =listOf<Wheel>()
}

请注意,wheels 是一个 public val,这意味着,可以从 Car 类外部访问 wheels,并且不能为其重新赋值。如果要获取 Car 的实例,必须先调用其构造函数。这样,您便可以访问它的任何可访问属性。

class Car(val wheels:List<Wheel>)

在以上示例中,类构造函数将List 当作构造函数参数,并且使用该参数来出事化wheels属性。

类函数和封装

类使用函数对行为建模,函数可以修改状态,可以使用doorLock属性对Car类外部不公开,如果要解锁汽车,则必须调用unlockDoor()函数并传入有效的钥匙。

class Car(val wheels: List<Wheel>) {

    private val doorLock: DoorLock = ...

    fun unlockDoor(key: Key): Boolean {
        // Return true if key is valid for door lock, false otherwise
    }

}
如果希望自定义属性的引用方式,则可以提供自定义的 getter 和 setter。例如,如果希望公开属性的 getter 而限制访问其 setter,则可以将该 setter 指定为 private:

越努力越幸运,加油冲冲冲!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值