kotlin中函数作为参数和函数作为返回值实例练习
Posted 汤米粥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin中函数作为参数和函数作为返回值实例练习相关的知识,希望对你有一定的参考价值。
kotlin中函数作为参数和函数作为返回值,在工作中写代码有时会被卡住,怎么写都提示语法错误,今天专门研究一下几种常用的用法。
package com.example.test
import android.util.Log
import java.util.*
class KotlinSample
//直接定义函数
//带参数,没有返回值的函数
private var myPrint: (msg: String) -> Unit = msg -> Log.e("xxx5",msg)
//带参数,有返回值的函数
private var hello : (msg: String) -> String = "hello $it.uppercase()!!"
//函数作为参数
fun callMethods()
method1
var hello = "hello world"
Log.e("xxx1", hello)
hello
method2
var hello = "hello world"
Log.e("xxx2", hello)
method3("hello world") msg ->
Log.e("xxx3", msg)
//函数作为返回值
var method4 = method4("hello world")
method4.invoke()
//使用定义的函数
myPrint.invoke("hello world")
var greet = hello("zhang san")
myPrint.invoke(greet)
//返回String 但是不需要return 直接将字符串写在最后一行
private fun method1(method: () -> String)
method.invoke()
//Unit表示没有返回值
private fun method2(method: () -> Unit)
method.invoke()
//函数作为参数,有一个输入参数时。不能直接带给它,需要另外一个参数传进来。
private fun <T> method3(msg1: T, method: (msg: T) -> Unit)
method.invoke(msg1)
//函数作为返回值
private fun method4(str: String): () -> Unit
Log.e("xxx4", "这一部分不返回,直接运行")
return
var strNew = str.uppercase(Locale.getDefault())
Log.e("xxx4", strNew)
运行结果:
2022-07-28 11:05:04.308 20589-20589/com.example.test E/xxx1: hello world
2022-07-28 11:05:04.308 20589-20589/com.example.test E/xxx2: hello world
2022-07-28 11:05:04.308 20589-20589/com.example.test E/xxx3: hello world
2022-07-28 11:05:04.308 20589-20589/com.example.test E/xxx4: 这一部分不返回,直接运行
2022-07-28 11:05:04.308 20589-20589/com.example.test E/xxx4: HELLO WORLD
2022-07-28 11:05:04.309 20589-20589/com.example.test E/xxx5: hello world
2022-07-28 11:05:04.309 20589-20589/com.example.test E/xxx5: hello ZHANG SAN!!
以上是关于kotlin中函数作为参数和函数作为返回值实例练习的主要内容,如果未能解决你的问题,请参考以下文章