马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在kotlin里函数跟lambda是重中之重,而且也非常难学,不过像我这种笨人学点皮毛还是可以的,希望大家能见一叶而知秋,像佛祖一样拈花一笑,就可以了解大千世界。我只作为一个介绍者。
fun main(args: Array<String>) {
println(readBook("《Kotlin 实战》"))
}
fun readBook(str:String):String{
return "我读了 $str 这本书"
}
这就是kotlin的函数写法以fun关键字开头,然后是函数名,圆括号里是参数,在冒号后面是返回值类型,如果没有返回值可以不写。调用时候跟其他语言一样。
函数也可以有动态类型加载,如下:fun main(args: Array<String>) {
println(readBook("《Kotlin 实战》"))
println(readBook(1))
}
fun <T>readBook(str:T):String{
return "我读了 $str 这本书"
}
这就会让你编程时非常方便,想传什么类型就传什么类型。输出结果为:
我读了 《Kotlin 实战》 这本书
我读了 1 这本书
参数还可以设置一个数组类型,如:fun main(args: Array<String>) {
println(readBook("《Kotlin 实战》","《java大全》","《C++大全》"))
}
fun readBook(vararg str:String):String{
return "我读了 ${str.joinToString ()} 这些本书"
}
在变量前加个vararg关键字就可以把类型变成个数组,在返回时我又把这个数组转换成了字符串。输出结果为:
我读了 《Kotlin 实战》, 《java大全》, 《C++大全》 这些本书
然后说说lambda表达式,其实就是函数的一个简写方法,例如:fun main(args: Array<String>) {
var readBook={str:String->"我读了${str}这本书"}
println(readBook("《零基础入门学习Python》小甲鱼 著"))
}
效果跟函数一样,但只用了一行代码,而且运行速度要比函数快,非常的好用。以后我们尽量用这种方式,不要用函数。
还可以用lambda表达式作为函数参数,如下:inline fun modifyString(str:String,operation:(String)->String):String{
return operation(str)
}
fun main(args: Array<String>) {
println(modifyString("hello",{it.toUpperCase()}))
}
输出结果为:
前面的inline关键字是为了让函数运行起来更效率,没有也可以。这里传进去的it就代表str。
还有这种方法:fun main(args: Array<String>) {
fun permit(vararg ages:Int):Boolean{
return ages.any{age->age>10}
}
println(permit(1,11,2))
}
输出结果为: any方法是判断ages数组里的所有值,如果有一个大于10的话就返回真,否则返回假。lambda在列表跟hashmap里应用比较广泛,我们以后再说。先简单介绍个字符串过滤的方法:fun main(args: Array<String>) {
var str1="I love FishC 3"
var fil=str1.filter { it.isDigit() }
print(fil)
}
输出结果:
就是把字符串里是数字的部分都过滤出来,很方便吧? |