Android Function 函数接口

发布于 2024-06-24 04:52:38 字数 893 浏览 21 评论 0

函数类型由如下格式表示

(参数类型列表) -> 返回值类型
如
(Int, Int) -> Int

Kotlin 的函数跟普通的变量一样,可以作为参数。

fun sum(list: List<Int>, add: (Int, Int) -> Int): Int {
    val result = 0
    for (it in list) {
        add(result, it)
    }
    return result
}

Kotlin 的类可以直接当做函数调用, 只需实现 invok 操作符

class Add {
    var sum = 0
    operator fun invoke(num: Int) {
        sum += num
    }
}

fun test() {
    var add = Add()
    add(5)
}

更进一步的,函数类型可以作为接口进行继承。

class IntTransformer: (Int) -> Int {
    override operator fun invoke(x: Int): Int = TODO()
}

如上, IntTransformer 实现了一个 (Int) -> Int 型的函数,因为函数只指定了类型,所以它是一个接口型函数,必须对其实现。

override operator fun invoke(x: Int): Int = TODO()

则是在实现 (Int) -> Int 接口函数

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

韶华倾负

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

新人笑

文章 0 评论 0

mb_vYjKhcd3

文章 0 评论 0

小高

文章 0 评论 0

来日方长

文章 0 评论 0

哄哄

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文