android——bean保存一个函数,函数中返回一个匿名函数、data打印、Pair 和 Triple

一、bean保存一个函数

代码如下:

data class UserBean(var age: Int, var name: String, var fun0: (Int) -> String)

使用:

val bean = UserBean(13, "张三")  { shengao: Int ->
            "我的身高是$shengao" 
        }
        bean.fun0.invoke(170)

可以bean中存储一个函数,等需要用的时候直接获取来用即可,在list中使用bean来获取使用能缩小比较多的代码和逻辑

二、函数中返回一个匿名函数

函数代码:

fun showMethod(info: String): (String, Int) -> String {
        println("我是showMethod函数 info:$info")
        //返回一个匿名函数
        return { name: String, age: Int ->

            "我就是匿名函数:我的name:$name,age:$age"
        }
    }

使用:

val str = showMethod("1111").invoke("aaa", 222)
        println("===>:$str")

 

三、PairTriple

在 Kotlin 中,PairTriple 是两种实用的数据结构,它们分别用于封装两个和三个值。这些类型在需要同时处理两个或三个相关的值,但又不希望创建复杂的类或泛型结构时非常有用。比如方法需要返回两个参数,又不想创建多余的bean

1. 使用 Pair 作为返回值

当函数需要返回两个相关值时,可以使用 Pair。这避免了创建额外的类来封装这两个值。

fun findPersonById(id: Int): Pair<String, Int>? {
    // 假设有一个数据库查询或其他逻辑
    // ...
    return Pair("Alice", 30) // 返回一个名字和年龄的Pair
}

2. 集合操作

你可以使用 Pair 在集合操作中表示键值对,尤其是在处理映射(如 Map)时。

val map: Map<Int, String> = mapOf(1 to "One", 2 to "Two")

// 使用map.map将键和值转换为Pair列表
val pairs: List<Pair<Int, String>> = map.map { (key, value) -> Pair(key, value) }

// 或者,直接在for-each循环中使用键值对
map.forEach { (key, value) ->
    println("Key: $key, Value: $value")
}

3. 使用 Triple 表示三维数据

当需要表示三个相关的值时,可以使用 Triple。例如,在图形编程中,你可能需要表示一个点的 x、y 和 z 坐标。

val point = Triple(1, 2, 3) // 表示一个三维点
val (x, y, z) = point  // 解构
println("X: $x, Y: $y, Z: $z")

知识点:

1、data打印能在Log里面看到所有的属性,解决了java不能打印bean的问题

data class UserBean(var age: Int, var name: String)

val bean = UserBean(18,"zhangsan")
Log.i("TAG","bean的具体内容为:"+bean)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wy313622821

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值