Kotlin Lambda语法解释
我是一个Kotlin初学者,非常想知道println的lambda表达式的行为。不幸的是,这两个函数的作用是相同的Kotlin Lambda语法解释,lambda,kotlin,Lambda,Kotlin,我是一个Kotlin初学者,非常想知道println的lambda表达式的行为。不幸的是,这两个函数的作用是相同的 val printFunction1:(String) -> Unit = { println("Hello, $it!") } val printFunction2 = { user: String -> println("Hello, $user!") } 我可以像这样调用函数,如果
val printFunction1:(String) -> Unit = {
println("Hello, $it!")
}
val printFunction2 = {
user: String ->
println("Hello, $user!")
}
我可以像这样调用函数,如果有人能解释一下就好了
printFunction1("Bini")
printFunction2("Jenu")
lambda在这两种情况下的行为与正常函数完全相同。 接受输入(参数)作为字符串,函数执行println() 正常功能:
fun funName(parameters):ReturnType{FunBody}
与变量关联的Lambda函数:
var varFunName:(ParameterType) ->Unit={FunBody}
or
var varFunName = {
parameters -> {FunBody}
}
注意:由于第一个类型中没有参数名,它会自动映射到它的变量/表达式
要了解更多信息,请查看页面,该页面确实包含所有Kotlin语言结构的语法,可能需要一些时间来理解所有语法都是链接,因此如果您想了解该部分,只需遵循链接即可。Lambdas在这两种情况下的行为与正常函数完全相同。 接受输入(参数)作为字符串,函数执行println() 正常功能:
fun funName(parameters):ReturnType{FunBody}
与变量关联的Lambda函数:
var varFunName:(ParameterType) ->Unit={FunBody}
or
var varFunName = {
parameters -> {FunBody}
}
注意:由于第一个类型中没有参数名,它会自动映射到它的变量/表达式
要了解更多信息,请查看页面是否有适用于所有Kotlin语言结构的语法可能需要一些时间才能理解所有语法都是链接,因此如果您想了解该部分,只需遵循链接即可您希望函数的行为如何 第一个有一个显式的
(String)->单元
。这样,就不需要在lambda中指定参数类型String
。您可以将it
(对于lambdas的单个参数)用作字符串
第二个参数没有指定类型,您需要告诉编译器lambda参数的类型,这是您使用user:String->
所做的。请注意,更惯用的做法是将此零件移动到带有开口支架的直线上:
val printFunction2 = { user: String ->
println("Hello, $user!")
}
否则我就看不到这里有什么奇怪的事情发生。如果您需要进一步的说明,请告诉我。您希望函数的行为如何 第一个有一个显式的
(String)->单元
。这样,就不需要在lambda中指定参数类型String
。您可以将it
(对于lambdas的单个参数)用作字符串
第二个参数没有指定类型,您需要告诉编译器lambda参数的类型,这是您使用user:String->
所做的。请注意,更惯用的做法是将此零件移动到带有开口支架的直线上:
val printFunction2 = { user: String ->
println("Hello, $user!")
}
否则我就看不到这里有什么奇怪的事情发生。如果您需要进一步澄清,请告诉我。为什么您会说“不幸的是”这两个功能在做相同的工作?你到底期望什么?实际使用哪一个?为什么说“不幸的是”这两个函数做的是相同的工作?你到底期望什么?实际使用哪一个?