贵州省住房与城乡建设厅门户网站,南宁网站建设找哪家,设计师网站pintset,c 做网站怎么截取前面的字符Kotlin Lambda表达式和匿名函数的组合简直太强了
简介
首先#xff0c;在 Kotlin 中#xff0c;函数是“第一公民”#xff08;First Class Citizen#xff09;。因此#xff0c;它们可以被分配为变量的值#xff0c;作为其他函数的参数传递或者函数的返回值。同样在 Kotlin 中函数是“第一公民”First Class Citizen。因此它们可以被分配为变量的值作为其他函数的参数传递或者函数的返回值。同样在 Kotlin 中有两种明显的方式来将一个函数分配给一个变量2种不同的函数字面值。
1- Lambda 表达式
2- 匿名函数
现在我们将查看这些主题及其解释和示例。
Lambda表达式
在Kotlin中Lambda表达式是一个简洁的未命名函数它被括在大括号中用于定义可以作为值传递或存储为变量的代码块。
//Basic Usage of Lambda expression var myVariable { println(Inside of the Lambda Expression) }此外Lambda表达式可以接受参数并返回值。现在让我们来看一下语法。 //Lambda Expressions can take arguments and return values.val myVariable: (Int, String) - String { a: Int, b: String - $a $b }此外当创建 Lambda 表达式时我们可以使用更短的语法。
//There are two shorter syntax.// 1- Skip the function type.
val myVariable { a: Int, b: String - $a $b }// 2- Skip the data types inside the curly brackets
val myVariable2: (Int, String) - String { a, b - $a $b }最后有四种函数类型根据参数和返回类型的不同而变化。
//There are four function types, varying based on parameters and return types.// 1-With Parameters and No Return Value:
val myVariable: (Int, String) - Unit { a: Int, b: String - println($a $b) }// 2-With Parameters and Return Value:
val myVariable2: (Int, String) - String { a: Int, b: String - $a $b }// 3-No Parameters and No Return Value:
val myVariable3: () - Unit { println(No Parameters and No Return Value) }// 4-No Parameters and Return Value:
val myVariable4: () - String { Return String }并不总是需要变量因为lambda表达式可以直接使用。
// A variable isnt always necessary, as lambda expressions can be used directly.
println( {a: String, b: String - $a $b} (jacky, josn) )匿名函数
在 Kotlin 中匿名函数和 lambda 表达式都是未命名的函数可以作为值传递。不过匿名函数使用 ‘fun’ 关键字定义而 lambda 表达式则使用花括号 {}。
//Syntax of Anonymous Function
val myVariableName: (FirstDataType,SecondDataType) - ReturnType fun(firstParameter,secondParameter): ReturnType { MethodBody }//Example of Anonymous Function:
val myVariable: (String, String) - String fun(a, b): String {return $a $b
}此外在创建匿名函数时我们可以使用更短的语法。
// Shorter Syntax Of Anonymous Function
val myVariableName fun(FirstDataType,SecondDataType) : ReturnType { MethodBody }// Shorter Syntax Of Anonymous Function:
val myVariable fun(a:String,b:String): String { return $a $b }// When the method body contains just one statement,
// the return keyword and braces can be omitted.
val myVariable2 fun(a:String,b:String): String $a $b最后让我们探索基于参数和返回类型的各种匿名函数格式。
// Lets explore various anonymous function formats,
// depending on the parameters and return type.// 1- With Parameters and No Return Value:
val myVariable fun(a: String, b: String): Unit {println($a $b)
}// 2- With Parameters and Return Value:
val myVariable2 fun(a: String, b: String): String {return $a $b
}// 3- No Parameters and No Return Value:
val myVariable3 fun(): Unit {println(No Parameters and No Return Value:)
}// 4- No Parameters and Return Value:
val myVariable4 fun(): String {return Hi!
}fun main() {myVariable(Hüseyin,Özkoç)println(myVariable2(Orkun,Ozan))myVariable3()println(myVariable4())
}结论
因此在 Kotlin 中函数被称为“一等公民”这意味着它们可以被分配给变量作为参数传递给其他函数或作为函数的返回值。在 Kotlin 中有两种方法将函数分配给变量其中一种是通过 lambda 表达式来实现lambda 表达式是括在大括号内的简洁的匿名函数。匿名函数和 lambda 表达式都是未命名的函数可以作为值进行传递不过匿名函数使用“fun”关键字来定义而 lambda 表达式则是用花括号 {} 来定义。总的来说Kotlin 中的这些特性提供了更加灵活和简洁的编码方式。
参考 https://kotlinlang.org/ https://semicolonspace.com/kotlin-lambda-function-literals/