普通函数
fun name(str : String) : String { }
fun 函数名(参数名 : 参数类型) : 返回类型 { }
通常未加任何修饰词的函数是public
的,你也可以给前面加上private
无返回值
fun name(str : String) : Unit { }
Unit相当于java中的void
函数默认值
private fun name(str: String, it : Int = 2): Unit{ }
这时it
就有一个默认的值为2,你可以这样调用name(s)
也可以name(s,5)
那么5就会覆盖默认值2,这个很好。可以少写很多相似的方法
通过参数直接返回值
fun name(it1: Int, it2 : Int): Int = it1+it2
这应该一看就懂了吧,返回类型为Int,通过传入的it1+it2
直接返回结果。
扩展函数
fun String.replaceF(s : String) : String{ return s.replace(",",""); }
这是对某个类直接进行扩展,不需要使用继承的方式,可以直接进行使用:var s: String = toString(); s.replaceF("")
可以当做扩展类也可以当作工具类来使用。这个功能很强大
PS:这个一开始被坑了真的。坑的不是kotlin,而是网上大部分的博客,因为没提及一个关键的地方,就是扩展函数的文件类型必须是File。�像这样
image.png image.png类中是没有class abstract这些的。就是一个File文件
内联函数
inline fun String.replaceF(s: String): String { return s.replace(",", ""); }
其实就是在普通的函数前加上inline
关键字,它的作用是在编译时将函数代码与调用的地方替换,就如函数内部代码是直接写在调用的地方一样。而普通的函数在调用时会在内部生成临时的对像。所以使用内联函数可以避免一定的内存开销。但同样的,因为会在编译时进行代码的替换所以使用滥用的话会让编译的时间进行增加。
网友评论