IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 高阶函数的应用kotlin -> 正文阅读

[移动开发]高阶函数的应用kotlin

高阶函数的应用

是什么

高阶函数是指将函数用作一个函数的参数或者返回值的函数。

高阶函数简化SharedPreferences

fun SharedPrerences.open(block:SharedPreferences.Editor.() -> Unit){
	val editor = edit()
	editor.block()
	editor.apply()
}

?

  • open是拓展函数,添加到SharedPrerences中。它还接受了一个函数类型的参数
        getSharedPreferences("data", Context.MODE_PRIVATE).open { 
            putString("name","Tom")
            putBoolean("married",false)
            putInt("age",28)
        }

简化ContentValues的用法

"Apple" to 1 创建键值对,用着语法结构的时候会创建做出一个 Pari 对象。
  1. 创建一个ContentValues.kt文件,并在里面定义一个cvOf()方法

    1. eg

          fun cvOf(vararg pair: Pair<String,Any?>):ContentValues{
             
          }
      
    varary 关键词-》类似java里面的可变参数。
    
    Any?相当于可以传(字符串型,整型,浮点型,null)
    
  2. 使用高阶函数优化cvOf函数

    fun cvOf(varary pairs:Pair<String,Any?>) = ContentValues().apply{
    	for(pair in pairs){
    		val key = pair.first
    		val	value = pair.second
    		when(value){
    			is Int ->put(key , value)
    			is Long ->put(key,value)
    			is Short -> put(key ,value)
    			is Float  -> put(key ,value)
    			is Double -> put(key ,value)
    			is String -> put(key ,value)
    			is Byte -> put(key ,value)
    			is ByteArray -> put(key ,value)
    			null -> putNull(key)
    		}
    	}
    }
    

    apply函数返回的正式ContentValues对象

    使用

    val values = contentValuesOf("name" to "Game of Thrones","author" to "TanGan","page" to 1038,"price" to 20.34)
    db.insert("Book",null,values)
    
  • 这样就可以更加简化地put数据
參考第一行代碼 郭霖老師
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:02:26  更:2021-09-01 12:02:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/22 18:29:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码