Kotlin(十六) 高阶函数的简单应用

高阶函数非常适用于简化各种API的调用,一些API的原有用法在使用高阶函数简化之后,不管是在易用性还是可读性方面,都可能会有很大的提升。

所以我们可以通过高阶函数来使一些API变得更简单更易读。在我们APP存储数据时,通常会用到SharedPreferences 这个API,那么我们现在尝试使用高阶函数来简化它。

简化SharedPreferences

我们之前使用SharedPreferences时,基本需要三步

1.获取Editor对象

2.通过Editor对象存储数据

3.调用apply()方法提交数据,完成存储操作

对应代码如下:

Kotlin 复制代码
    @SuppressLint("CommitPrefEdits")
    fun saveSharedPreferences(saveString: String) {
        val edit = getSharedPreferences("fileName", Context.MODE_PRIVATE).edit()
        edit.putString("editName", "editValue")
        edit.apply()
    }

那我们该如何简化他呢?首先我们可以通过扩展函数的方式,给SharedPreferences扩展一个save函数,并且他还接收一个函数类型,那么save函数就是一个高阶函数了。

代码如下:

Kotlin 复制代码
fun SharedPreferences.save(block: SharedPreferences.Editor.() -> Unit) {
     val editor = edit()
     editor.block()
     editor.apply()
}

调用

Kotlin 复制代码
getSharedPreferences("name",Context.MODE_PRIVATE).save { 
    putString("key","value")
}
相关推荐
落日漫游9 分钟前
代码报错难排查?借助Gemini快速修复
前端
niconicoC10 分钟前
让 Three.js 场景更真实:我用高斯泼溅和 SparkJS 做了一个可交互的 3D Demo
前端·webgl
Darling噜啦啦13 分钟前
JavaScript 数组深度解析:从纯函数到二维数组陷阱,一文吃透前端数据结构核心
前端·javascript·数据结构
万少13 分钟前
一封邮件,让我重新打开了搁置半年的鸿蒙应用
前端·javascript·后端
wjj不想说话16 分钟前
你的小程序活动页,可能已经成了后台配置的杂物间
前端
梦想是准点下班17 分钟前
androidStudio打包,我又又又忘了
前端
槑有老呆18 分钟前
栈队列链表,三个故事就懂了
前端
周杰伦的稻香23 分钟前
Go + Redis:本地部署高性能图片主色调提取服务
开发语言·redis·golang
吴梓穆28 分钟前
Python 语法基础 函数
开发语言·python
不负岁月无痕31 分钟前
C++ 模板核心内容与高频面试题汇总
java·开发语言·c++