|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
- }
复制代码
输出结果:
就是把字符串里是数字的部分都过滤出来,很方便吧? |
评分
-
查看全部评分
|