1、还是先上个图,新建kt:
2、代码:
package com.jstonesoft.myapplication.test
fun main(){
val count = "helloworld".count()
println(count);
println("------------------------")
var count2 = "helloworld".count(){
it == 'l';
}
// count2 = "helloworld".count{
// it == 'l';
// }
println(count2);
println("------------------------")
// lambda 隐式返回,不需要return,最后一行为返回值,而且类型要一致。
//1.定义
val countMethod: () -> String;
//2.实现
countMethod = {
val i = 999;
"$i abc";
}
//3.调用
println(countMethod());
// lambda 1.函数声明+实现
val countMethod2 : (String, Int) -> String = { username, old ->
val result = "姓名:$username, 年龄:$old"
println(result);
result;
}
//2.函数调用
countMethod2("flower and flower fish",18);
//2.等价调用
countMethod2.invoke("flower and flower fish",18);
println("------------------------")
//一个参数是会有一个it参数
val countMethod3 : (String) -> String = {
"$it flower and flower fish"
}
val result = countMethod3("hi");
println(result)
//一个参数是会有一个it参数
val countMethod4 : (Double) -> String = {
"$it flower and flower fish"
}
val result2 = countMethod4(12.32);
println(result2)
println("------------------------")
//匿名函数,自动推断,返回值类型。
val countMethod5 = { username:String , old:Int ->
val result = "您好,$username, 您的年龄:$old";
println(result)
result
}
countMethod5("flower and flower fish",18);
//匿名函数,自动推断,返回值String类型。
val countMethod6 = {
val result = "hi"
result;
}
println(countMethod6());
}
3、输出:
4、说明:
- 计算字符串的长度,直接用str.count();
- 计算字符串中某个字符出现的次数,直接用str.count(){ it == 'l'; //要查询的字符 }
- lambda 隐式返回,不需要return,最后一行为返回值,而且类型要一致。
- lambda 1.函数声明+实现 ==》(参数)-> (返回值){ 函数体 ,最后一行为返回值 。}
- 一个参数是会有一个it参数
- 匿名函数,自动推断,返回值类型。
这个匿名函数与Swift中的闭包是一样的。